这什么问题
#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;
}
#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;
}
2020-10-24
你好,我有以下个人见解:
if语句的判断条件(i=3),在C语言里“=”是“赋予”而不是“等于”,等于要用双等号“==”。
我认为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语句前就符合题意。(如有冒犯之处,请谅解)
举报