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

来源:4-19 臭名远扬之goto语句

程序之神

2019-09-01 08:11

#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回答

  • LXSENSE
    2019-09-19 11:00:47
    已采纳

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

    程序之神

    已采纳 谢谢 !

    2019-09-26 22:33:57

    共 1 条回复 >

  • 小小疾飞
    2019-09-04 13:23:32

    你自己可以判断嘛

  • 程序之神
    2019-09-02 09:09:14

    这个也是死循环吗?

    #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;

    }


    柳青夜明

    复制代码然后用VC++试试

    2019-09-10 21:20:01

    共 1 条回复 >

  • 小小疾飞
    2019-09-01 08:40:19

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

    程序之神

    这个也是死循环吗? #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 09:21:19

    共 1 条回复 >

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题