qq_绝不将就_0
2017-01-05 14:37
#include <stdio.h>
int main()
{
int sum = 0;
int i;
KKKL:for(i=1; i<=10; i++)
{
printf("%d\n", i);
if(i==3)
break;//是不是少了一个判断呢?
goto KKKL; //在这里使用goto语句
}
printf("结束for循环了...."); //请选择合适位置添加标识符
return 0;
}
你这个逻辑关系理错了
你这个if这么写的话
if(i==3)
break;//是不是少了一个判断呢?
goto KKKL;
1:结构上少了大括号,计算机认为的是如果i==3执行break;else否则执行goto KKKL;所以当i=1时,if语句判断为i<3,执行了goto KKKL; 而你goto到for语句又把i的值初始化为1了,所以就死循环了。
2:goto是强制执行到有标识符的位置的,所以你把goto放在for语句前面是不对的,应该吧goto放在printf(“”结束for循环了“”)的前面,当i==3,输出结束for循环。
#include <stdio.h>
int main()
{
int sum = 0;
int i;
for(i=1; i<=10; i++)
{
printf("%d\n", i);
if(i==3)//是不是少了一个判断呢?
goto KKKL; //在这里使用goto语句
}
KKKL:printf("结束for循环了...."); //请选择合适位置添加标识符
return 0;
}
这样写的话,会陷入死循环吧,大概意思是这样的:
for(i=1; i<=10; i++)
{
printf("%d\n", i);
if(i==3)
break;//是不是少了一个判断呢?
else
for(i=1; i<=10; i++)
{
printf("%d\n", i);
if(i==3)
break;//是不是少了一个判断呢?
else
for...
}
}
C语言入门
926025 学习 · 20793 问题
相似问题