在C裡break和continue的區別謝謝大家了

2021-05-26 06:30:25 字數 5436 閱讀 2551

1樓:飄零的狐狸

break 是跳

出du迴圈zhi

而 continue是跳出當dao前這一

回次int a=0;

for (int i=0;i<5;i++)a=1;

而int a=0;

for (int i=0;i<5;i++)a=4; 只跳過

答了a=1這一次。

2樓:樹兒傳說

break; == 跳出迴圈;

continue ==跳過後面的**繼續下一迴圈;

迴圈內迴圈可用to ***,跳出所有迴圈到指定點

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

3樓:匿名使用者

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 而瞎編的,導致**複雜化了,請試著將其簡化。

4樓:匿名使用者

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

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

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

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

好好領會吧!

5樓:匿名使用者

break是退出迴圈

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

for大多用在已知迴圈次數

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

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

6樓:匿名使用者

都一樣,

break是跳出迴圈

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

7樓:匿名使用者

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

c,c++,c#的區別?

8樓:馬佳振華萬妝

c是程序導向的語言,c++和c#是物件導向的語言

這個你肯定是聽過的

但是思想可能還不懂,

c解決問題

是用一大堆函式來解決,舉個例子就比如你去洗澡,首先你得進浴室,然後**服,開水龍頭,衝。。。。。這裡的每個動作就是一個函式,你的程式就是由這些個函式一個一個但次序堆起來的

c++的話是物件導向

,以物件的思想來實現的

,還是上面那個例子,比如有個物件叫小明,小明有個洗澡的功能。。。。然後你只要呼叫洗澡這個函式,然後洗澡這個函式會自動幫你來實現進浴室,然後**服,開水龍頭,衝。。。。。這些功能。

或許你會問c也可以實現洗澡這個函式呀,但是

這個只是個簡單的例子,複雜的話c就會力不從心了,

而且對於使用者來說,他關心的是洗澡這個動作

而不是進浴室,多衣服這些對使用者來說無用而又麻煩的操作

總的來說學程式設計物件導向是一定要搞懂的,物件導向更加符合自然——按照《易經》的思想

哈哈語言都想通,而且學一門完一門語言,再翻翻其他語言的書可以讓你加深對思想的理解和差別,多看看總沒有壞處。

講的比較片面

呵呵,我怕稍微專業一點的名詞搬出來

你理解不了,總的來說直接看c++吧

9樓:水雅丹郟忻

zhuan

c++在設計之初希望提供先進的物件導向特性,同時提供很好的效能。但是為了保證和以往的程式、開發人員的知識相容,c++與c語言幾乎完全相容。c語言本身其實就是現代計算機的高階抽象,可以直接訪問地址、通過指標可以訪問幾乎任何記憶體地址;堆和棧的結構體現等待。

當然c++也就具有了這樣的特性。隨著

c++的逐步發展,generic

programming

泛型程式設計技術和stl標準模板庫的引入,c++和c的差異越來越大。基本上c++是為了高效地使用物件導向技術或者泛型技術編寫大規模高效能應用程式(往往是一些相對比較底層的應用程式)而設計的。

c#通過底層的虛擬機器機制減少了c/c++語言中常常容易發生的記憶體洩漏和安全性問題,代價是執行速度減慢。同樣的由於簡化了程式語言的複雜性(c#遠遠比c++來得簡單),大大提高了開發者得效率。另外c#具有.

net龐大的類庫,這個優勢是c++所不具有的。因此c#非常合適開發企業中處理業務的應用程式。同時微軟所有的作業系統、伺服器程式、桌面端程式都在向.

net平臺統一。在歷史上與次類似的情形(指微軟技術)只有在微軟從16位平臺向32位平臺轉變的過程中發生過。因此現在.

net的轉變對開發者來說可能是痛苦的(因為要學習很多新的東西),但也充滿了機會。

10樓:斯鳴玉冠輝

c是程序導向的語言,更接近硬體,現在好多嵌入都用c了c++是c的擴充套件,其較c最突出的特點就是提出了物件導向的設計方法,也可以用來開發底層程式

c#物件導向較c++做的更好,其支援庫提供了更多功能,其應用一般可以用於應用軟體開發、編寫移動裝置開發(主用用微軟平臺的)、web開發能力也很強,asp.net下最好的語言便是c#,c#編譯後的可執行程式需要.net

framework的支援。

11樓:塞痴督谷之

不好說呢,雖然我讀書的時候就學會了這三種,但是要說個所以然出來還說不出

c語言是高階語言,有別於以前的組合語言,但它不是物件導向的,c++和c#是物件導向的程式語言,其實他們的語法是很接近的,但是裡面有很多細節是不同的,c和c++有指標,但是c#沒有指標概念,c沒有物件的概念,c++和c#有,一般用c和c++開發底層介面比較好,c#不好用(估計是掌握的知識面窄了點),但c#在開發一些應用程式和web時,那很很有優勢了,

而且c#是微軟力推的,的確很不錯

從不同的角度出發,他們的區別和聯絡也會有不同。

.net是微軟推出的一個平臺,微軟稱它為:xmlweb服務平臺。

它不是一種語言,c#是一種語言,在.net裡面還有很多,像vb.net,c++.

net,j++.net等,據說.net是微軟的一個網路戰略。

12樓:原誠郯嬋

好學的話絕對是c語言.一般來說,學習

13樓:那鯤元天菱

c++是c語言的擴充套件(非常大的改造)

大部分c語言**在c++中可以直接使用

反過來也是(不包含c++特性)

c/c++都可以編寫底層**,不受平臺限制。

至於c#是微軟借鑑c++開發的在clr

.net中執行的一門新語言。是一門高階,完全物件導向的語言,只能在windows中執行。

其實總的說這三門語言是完全不同的

不要看都有個c在

如果一開始他們就分別叫做ab

c語言你就不會這樣問了

在C語言中,continue和break語句的區別是什麼啊

continue是繼續下一次執bai 行的意思。du break是跳出執 zhi行的意思。兩者一般用到循 dao環語句裡面。continue是直 專接走到迴圈體末尾,屬然後判斷迴圈條件,來決定是否繼續迴圈。break是直接跳出迴圈的意思。比如 a 0 while a 1000 if a 905 如果...

c語言裡for語句在執行break之後,還有執行for語句的

i 操作將不被執行了,因為break操作之後已經跳出了整個for迴圈 出第一次執行表示式1之外 之後的循序是 表示式2 for語句塊 遇到continue後跳出當前迴圈 表示式3 表示式2 for語句塊 遇到continue後跳出當前迴圈 表示式3 表示式2 如果執行到continue語句時是直接去...

在C中,有多層迴圈,最內層中寫break,程式是隻跳出最內層迴圈呢,還是將結束所有迴圈呢?求

只能跳出所在的一層迴圈,如果要跳出所有迴圈,需要一個個的寫break,或者寫一個標記變數,或者單寫到函式中使用return一次性退出。只跳內層迴圈,如果要跳出所有迴圈建議用goto break 跳出當前迴圈 為什麼不自己試一試呢?如果有多個迴圈,在最內層裡用break語句是是跳出最內層迴圈還是跳出所...