问答详情
源自:4-19 臭名远扬之goto语句

请问在上面的例子中为什么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;

}


提问者:程序之神 2019-09-01 08:11

个回答

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

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

  • 小小疾飞
    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;

    }


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

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