在Basic等语言中有无条件转移goto语句,C语言中也有无条件转移指令goto语句。goto语句只在一个函数内有效。goto语句最好不要在循环语句中用来跳出循环。
goto语句的格式如下:
goto标号;
…
标号:语句
在语句的前面可以加标号,它们之间用冒号来分隔。当遇到goto语句时,便立即执行带有标号的语句。因为标号也是名字,其命名规则同变量名的规则一样。因此,前8 个字符有效,超过的部分将不被解释。goto语句的执行过程是:将执行的流程转向以该标号为前缀的语句去执行。当用goto语句时,就不用break语句。在多重循环的程序中使用goto语句是很方便的,但是,违反了结构化程序的设计原则。我们应该尽量不使用goto语句,否则将影响程序的可读性。
示例:输入一个字符串,当字符串没有超过10个字符时,输出没有超过10个字符的内容;当超过时,输出超过了10个字符的内容。
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
printf("输入一个小于100的字符串\n");
scanf("%s", str);
if (strlen(str) < 10) /*如果字符串的长度小于10*/
{
goto Label1; /*执行Label1标号处的代码*/
}
else
{
goto Label2; /*否则,执行Label2标号处的代码*/
}
Label1:
printf(" 输入内容没有超过10个字符"); /*输出提示文字*/
Label2:
printf(" 输入内容达到或超过了10个字符"); /*输出提示文字*/
return 0;
}
程序运行结果为:
abcdefg123456789↙
输入内容达到或超过了10个字符
评论前必须登录!
注册