請問在上面的例子中為什么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;
}
#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
舉報
2019-09-19
代碼的編譯是從上至下的,你這樣寫就是執行完一次if后,繼續向下讀就會讀到goto,你這個goto放在外面的結果就是每次執行到后面都會被要求回去從前面再執行一次,然后又到后面又回到前面,goto這個梗永遠也出不來,如果是向前跳轉,你得保證在達到目的的時候能跳過goto,如果要放在外面的話你只能把goto放在if的前面,不然會就是死循環
2019-09-04
你自己可以判斷嘛
2019-09-02
這個也是死循環嗎?
#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
不管對不對,但是你這已經是個死循環了.