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

请问在上面的例子中为什么goto LOOP放在if语句外面就不行了

#include <stdio.h>

int main()

{

   int sum=0;

   int i=1;

   LOOP:if(i<=10)

   {

       sum+=i;

       i++;


   }

goto LOOP;

printf ("sum=%d\n",sum);




return 0;

}


正在回答

4 回答

代码的编译是从上至下的,你这样写就是执行完一次if后,继续向下读就会读到goto,你这个goto放在外面的结果就是每次执行到后面都会被要求回去从前面再执行一次,然后又到后面又回到前面,goto这个梗永远也出不来,如果是向前跳转,你得保证在达到目的的时候能跳过goto,如果要放在外面的话你只能把goto放在if的前面,不然会就是死循环

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

程序之神 提问者

已采纳 谢谢 !
2019-09-26 回复 有任何疑惑可以回复我~

你自己可以判断嘛

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

这个也是死循环吗?

#include <stdio.h>

int main()

{

   int sum=0;

   int i=1;

   LOOP:if(i<=10)

   {

       sum+=i;

       i++;

goto LOOP;

   }

printf ("sum=%d\n",sum);




return 0;

}


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

柳青夜明

复制代码然后用VC++试试
2019-09-10 回复 有任何疑惑可以回复我~

不管对不对,但是你这已经是个死循环了.

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

程序之神 提问者

这个也是死循环吗? #include <stdio.h> int main() { int sum=0; int i=1; LOOP:if(i<=10) { sum+=i; i++; goto LOOP; } printf ("sum=%d\n",sum); return 0; }
2019-09-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问在上面的例子中为什么goto LOOP放在if语句外面就不行了

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