C語言中continue和break在退出迴圈時可以互換嗎

2021-04-28 17:34:14 字數 3215 閱讀 5487

1樓:匿名使用者

不可以!

continue 是回到while( 條件 )這裡進行檢查是否條件還成立 , 如果成立繼續迴圈,如果不成立結束迴圈!

break 是直接跳出迴圈體,結束迴圈了!

2樓:匿名使用者

不可以啊

break可以跳出迴圈體結束整個迴圈啦 不判斷執行迴圈的條件了

ercontinue一般為結束本次迴圈不是終止整個迴圈的

3樓:匿名使用者

不可以,再看看概念,功能不同。

c語言中break和continue在各種迴圈中的用法,謝謝...

4樓:匿名使用者

c語言中continue與break的用法介紹

1. continue

continue 可用於 c 提供的全部三種迴圈結構。continue 會致使迴圈跳過迴圈體中餘下的語句,轉而判斷迴圈條件是否仍然成立,然後選擇是否再次進入迴圈體。如果 continue 位於迴圈巢狀中的乙個內迴圈,則其僅能影響該內迴圈的執**況,而不會對外迴圈造成任何影響。

例如:| 功能: 統計從 1 到 n 中一共有多少個數字可以被 5 整除

#include

int main(void)

for ( j = 1, total = 0; j <= i; ++j )

++total; /* 統計從 1 到 i 一共有多少個數字可以被 5 整除 */

}printf("total: %d ", total);

} while ( i ) ; /* i 等於 0 時退出迴圈 */

}我們先來分析一下內迴圈。假設使用者輸入的是 5,則內迴圈的前四次迴圈中,j % 5 都為真,然後執行 continue; 跳過迴圈體中餘下的語句,直接執行 ++j,繼而判斷 j <= i 的真假性,從而選擇是否再次進入迴圈體。本內迴圈中,因為 continue 的關係,前四次迴圈 ++total; 都會被跳過。

第五次迴圈 j % 5 為假,不會執行 continue; ,++total; 終於得以被執行。

外迴圈中,假設使用者輸入 0,則 i == 0 為真,continue; 得以被執行,因此跳到 while ( i ),因為 i 為假,故外迴圈結束。如下圖所示:

請注意,本例中的內迴圈完全是出於演示目的才用 continue 的,這使**複雜化了,有違 continue 的初衷。continue 是為了簡化**而生的!本例中的內迴圈如果不使用 continue,**將會更簡單:

for ( j = 1, total = 0; j <= i; ++j ) }

記住,continue 是為了簡化**而生的!使用前請斟酌使用它是否能簡化**,如果不能,則不要用。

其實本例中的外迴圈也可以不用 continue。以下**沒有使用 continue,但其功能和上面使用 continue 的那段**完全一樣。

doelse }

printf("total: %d ", total);

}} while ( i ) ; /* i 等於 0 時退出迴圈 */

不過,本例中的外迴圈使用 continue 使得**的結構更加清晰明了,緊湊易讀,而且也沒有使**複雜化。本例中的外迴圈使用 continue 告訴我們,當 i 等於 0 時跳到 while ( i )。如果不用 continue 而採用上面這段**的話,當 i 等於 0 時,我們只能知道 else 下的那條復合語句不會被執行,卻不能確定執行完 printf("zero is not allow.

"); 後一定會跳到 while ( i ),因為我們不知道迴圈體中整個 if else 結構後面是否還有其它語句。

2. break

break 可用於 c 提供的全部三種迴圈結構,其作用是跳出迴圈。如果 break 位於迴圈巢狀中的乙個內迴圈,則僅跳出該內迴圈。上例中,如果 i 等於 0 的話,肯定會退出外迴圈,所以其實上例中的外迴圈使用 break 更加合適。

下面我們來看乙個例子:

/* 本段**僅用作演示目的,不要寫這樣的**!*/

int i, j, total;

while ( 1 )

for ( j = 0, total = 0; j != i; ++j )

/* 其它語句 */

}/* 其它語句 */

}/* 其它語句 */

當 i 等於 100 時,外迴圈中的 break; 會被執行,從而跳出 while 迴圈,轉而繼續執行 while 迴圈後的語句。如果 i 等於 50,則能進入 for 迴圈。for 迴圈中,當 (total += j) > 100 為真時,break; 會被執行,跳出 for 迴圈,轉而繼續執行 for 迴圈後的語句。

如下圖所示:

和 continue 一樣,break 也是為了簡化**而生的!上面這段**完全是為了演示 break 而瞎編的,導致**複雜化了,請試著將其簡化。

5樓:匿名使用者

break:提前結束迴圈,即從迴圈體內跳出迴圈體.當它用於 do while , for ,while 時 可終止迴圈而執行後面的語句.

通常break總與if 語句一起使用,應用廣泛而巧妙!

continue:跳過本次迴圈體中剩餘的語句重新判斷迴圈條件!

功能 是結束本次迴圈 ,轉向迴圈條件,重新執行下一次迴圈!!

好好領會吧!

6樓:匿名使用者

break是退出迴圈

continue是停止下面的語句 重新迴圈for和while沒什麼不同的

for大多用在已知迴圈次數

while用在未知迴圈次數的問題

do while和while的不同是 do while是先執行一次迴圈再判斷真假 也就是最少要迴圈一次

7樓:匿名使用者

都一樣,

break是跳出迴圈

continue是不執行迴圈內continue語句以下的**,直接跳到下一次迴圈

8樓:匿名使用者

continue停止此次迴圈也就是這次迴圈continue下面的語句不用在執行,break終止迴圈.

c語言 在for迴圈中用break或continue跳出迴圈後 還執行增量表示式嗎

9樓:釁瑛奉笑天

break跳出迴圈,不再執行迴圈內的任何語句

continue執行下一次迴圈,執行for裡面的增量表示式

c語言中a和a的區別,C語言中a和a的區別

an和a的區別,用法區別 如果要列印的值是a 如printf d a 那列印出來的只是a的值.但是第二次列印的a值就是回 後的值.就是先答列印後 a就是先改變a的值,再列印出來.具體差別你可以自己試著執行比較一下.a a先加1,所以此時的a 9,所以輸出是9,a 是a先傳參,再減1,所以輸出是9。要...

c語言中a和a有什麼不同c語言中aa和a的區別

也不算很難理解啊 說的通俗點 a 就是先把a當前的值 進行輸出或運算啥的 然後a在自增1 就是加1 a也就先把a當前的值自增1 然後在輸出或運算啥的 好比a的值是1 b a 先把a當前的值1 自增1然後運算就是賦值給b 所以b 2 a 2b a 先把a當前的值1運算 就是賦值給b 所以b 1 然後a...

c語言中的double和,C語言中的double和float

double與float的區別在於bai在記憶體中存放數du據時占用的記憶體不一樣 zhi,前者dao8位元組,後者4位元組,也就回是前者儲存的小數字數答 比後者多一倍。舉例說明對於1.9999996666,按照float輸出,結果可能為1.999999,如果按照double可能為1.999999,...