C语言goto语句

在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个字符
赞(0)

评论 抢沙发

评论前必须登录!