迴圈體中不能出現goto語句

2025-07-24 13:50:07 字數 2692 閱讀 8310

1樓:浩浩凌風

能,只不過風格不好,所以一般不用goto語句。

2樓:

可以。 只是要注意goto的目標行旦絕弊。

goto目標行 與goto語句所在地,可以在同一層,或在goto語句所在地的外層。

也就是說,轉向,只可轉向到同一層,或外層,不可轉向到內層。

轉向語句只能巨集拿用於本函式模族塊,不能轉向到別的函式塊。

層的內外,可以從 大括號 分出,越過 乙個 就是退出一層。

goto語句是高效率語句,對應機內碼jump.

例子: void main()

for (j=0;j<5;j++)

for (i=0;i<4;i++)

if (x[j][i] >100) goto lab10;

if (x[j][i] <100) goto lab20;

lab10: .

lab20: .

錯誤的轉向例子:

for (j=0;j<5;j++)

if (j==3) goto lab30;

for (i=0;i<4;i++)

lab30: .錯。

3樓:網友

中手都怕影響可讀性。。高手都會控制。。

4樓:網友

高手一般不用,影響程式可讀性。

goto語句是迴圈語句(會死迴圈)嗎?

5樓:網友

goto loop; 會跳到上面 loop 標記的位置繼續向下執行。

goto本身不是迴圈語句,但是當goto跳轉到的標記位於回goto語句之前,使得會再次執答行到該goto語句,那麼就形成了**的迴圈執行。

可以像樓上那樣有條件地執行goto語句,或者在loop標記與goto loop;之間增加某個條件判斷,達到條件時使用exit退出語句。

6樓:自己剪頭發

一般都不用goto語句的。

你這樣寫當然會死迴圈了。

可以判斷一下。

if(..goto ..else

d、迴圈語句中可以用goto語句?

7樓:it圈新鮮事

可以的,goto語句可以跳轉到任意**段。

c 語言goto語句死迴圈

8樓:鬼火狼煙

當執行到goto num;,程式就會跳轉回到num:printf ("a ");然後又繼續向下執行,如此反覆迴圈下去。

9樓:♂凡鳥

你的for迴圈每次初始i=0;然後進來goto num,這樣每次for迴圈中的判斷i都是0<10,所以就是死迴圈。

所以說一定要把判斷條件的初始化放在迴圈開始之前。

此處應該把i = 0的賦值放在num前面。

10樓:網友

只要向前並且沒有條件的goto都是死迴圈。

num:..goto num;

執行到這句就回到前面執行。這不就是標準的死迴圈嗎。

goto一般都是有條件的goto。比如:

if (error) goto error;

error:

錯誤處理。這樣判斷某種錯誤後就直接轉到錯誤處理去,不要再做其他工作了。

11樓:初中數學講析

goto 的功能:

每次執行到這句:goto 標記;程式會跳到 有標記的那句**,如上面的:num:printf ("a ");

上述之所以會死迴圈是因為:執行到 goto num; —num:printf("a"); for( i = 0; i < 10; +i )

此處會 i = 0(始終)。

可以這樣改:

#include

#include

int main (void)

for ( i < 10; )

system ("pause");

return 0;

這樣改了之後還是不好,for() 迴圈語句的功能沒有很好的體現(goto 跳出了for(語句1;語句2;語句3 ) 迴圈是不會執行 語句3 的)。

goto太靈活了,容易使得程式結構變亂(不知道跳過了那些語句)。

程式的調式建議使用 vc 的斷點。

12樓:buta丶瀟

執行到"goto**"的時候,程式會自動跳到goto後面跟著的字元標誌處,即"num"處。

但是"num"處位於"goto"**之前,因此跳到了"num"的**處向下走,會又一次碰到goto..

如此迴圈反覆。因此會變為死迴圈。

另外goto語句的用法就是 goto+標誌, 如題中例子 num就是"標誌",當執行到goto的時候,會直接跳到"標誌"的地方,在標誌處繼續向下執行。

c中的這個用法很常見,比如執行到某個地方用"goto"跳到另外乙個地方接著執行。然後再用"goto"跳回來。

注:其中的標誌可以任意設定,標誌之間名字儘量不要重複。

關於goto語句的疑問,為什麼會無限迴圈?

13樓:若盼夏侯

1,可以用標記功能,如:rem a```delay 100goto a以上是無限迴圈2,可以用for語句,如:for 100```next這是迴圈100次。

VB,三重迴圈體迴圈問題 求解中

for i 1 to 2 for j 1 to 4 if j mod 2 0 then a a 1 end if a a 1 next j next i print a 先去掉中間的if三行,運算結果 i兩次,j 4次,a 8if mod的會有4次不等於0,a會再加4次1.所有。總的等於12 假設有...

如圖的客廳餐廳一體怎麼裝修?能不能出張效果圖?進門鳥瞰和平視

古典中式可以選 復擇中式制裝修的方式,客廳bai餐廳一體裝修也顯得大du氣。1 裝zhi修選材最重要 裝飾板材是dao所有板材的總稱,主要有細木工板 膠合板 裝飾面板 密度板 整合材 刨花板 防火板 石膏板 pvc板 鋁扣板 鋁塑板 三維板等。2 兒童房挑選香港雪寶 兒童房專用板材,板材行業領導品牌...

魔獸真三中法能不能出玄武

當然可以啊,蠢孫作為中法,如果有宣武,段檔梁那麼可以加一點點血,攻擊力,另外,兩個法師技能都很強,都主要看魔法輸出。這時候魔免很有效,很多時候都有人出。握運很多人怕這樣沒有後期,因為沒辦法丟掉,但是這東西是大件裡面,價效比最高的,秒魔免,絕對好東西。可以 就是不能用bug 不能打野 出車 只能在中路...