为了账号安全,请及时绑定邮箱和手机立即绑定

这什么问题

#include <stdio.h>

int main()

{

    int sum = 0;

    int i;

    for(i=1; i<=10; i++)

    {

        printf("%d\n", i);

    LOOP:if(i=3)

    goto LOOP;       //在这里使用goto语句

    }

    printf("结束for循环了....");  //请选择合适位置添加标识符

    return 0;    

}


正在回答

3 回答

#include <stdio.h>
int main()
{
    int sum = 0;
    int i;
    for(i=1; i<=10; i++)
    {
        printf("%d\n", i);
        if(i == 3)                    //是不是少了一个判断呢?
            goto QUIT;                //在这里使用goto语句
    }
    QUIT: printf("结束for循环了....");  //请选择合适位置添加标识符
    return 0;    
}


0 回复 有任何疑惑可以回复我~
#1

慕娘1039185

标识符的建议的规则:顶头大写,单占一行
2020-11-01 回复 有任何疑惑可以回复我~

你好,我有以下个人见解:

  1. if语句的判断条件(i=3),在C语言里“=”是“赋予”而不是“等于”,等于要用双等号“==”。

  2. 我认为goto可以理解为“跳跃到指定位置”,程序执行到goto LOOP就会跳转到LOOP并执行冒号后的代码,所以你的程序陷入了一个“看不见程序正在执行的死循环”。从程序执行顺序来分析,代码执行第一遍for循环的时候,打印出了“1\n”,然后到LOOP:if(i=3),这里可以认为没有判断条件,接着执行goto LOOP;又跳回到了LOOP:if(i=3),从这里开始了死循环。用这可以显示出这个死循环。

    LOOP:if(i=3)
    printf("*%d\n",i);
    goto LOOP;

建议:程序本身是没有语法错误,错在你的用法。题目的意思是执行for循环第3遍跳出循环,把LOOP放到for循环的{}后面的printf语句前就符合题意。(如有冒犯之处,请谅解)

1 回复 有任何疑惑可以回复我~

您这里应该是goto LOOP;导致了死循环;

而且在if语句中使用等于号应该为:

if (i == 3)

个人观点,可供参考;


2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926227    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

这什么问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信