c語言裡關於迴圈的問題,兩個個關於C語言迴圈跳出的問題?

時間 2021-08-30 10:20:03

1樓:飛貓警長

從上面的**來看,程式的意圖好像是從鍵盤輸入若干個數字,然後輸出它們的和。這種情況一般有兩種解決方法,乙個是在輸入前確定數字個數,另乙個是設定乙個(或多個)特別的數字(或其他字元)作為輸入結束條件。上面的**屬於第二種解決方案,當輸入的數字大於或等於99時,迴圈將結束。

對於不知道迴圈次數的情況,比如可以當輸入非數字時,迴圈結束,下面**僅供參考:

#include

int main (void)

printf ("%d\n", sum);

return 0;}

2樓:我姐是恐龍

score你沒有給初值啊

int sum,score=0;

想結束 用break;

例如for(;;)

於是你輸入$就退出了

3樓:c語言大菜

話說應該是:int sum=0,score;

for(score=0;score<100;score++) \\score 從0增加到99,迴圈100次

還有呼叫system函式要先申明標頭檔案#include "windows.h"

4樓:打死小胖

只能是輸入大於100的數,不然只能修改**。而且程式也有點問題,score沒有初始化

5樓:匿名使用者

你應該設定另乙個計數器在for迴圈裡,如果你是想要計算100個同學的成績的話,就用計數器從1自增到100;用score做計數器是不行的,因為score是你要自己處理的,而for中的計數器一般是讓其自增,不去修改他的

6樓:御阪美琴控

輸入乙個大於100的數

7樓:匿名使用者

你這個程式是錯的,另外請把程式要解決什麼問題先說明白

兩個個關於c語言迴圈跳出的問題?

8樓:匿名使用者

通常在c語言裡面使用的跳轉語句主要有四種:

goto

continue

break

return

先將四種都為你做乙個簡單的介紹:

goto :

用於模組之間的跳轉,e68a8462616964757a686964616f31333262346530次跳轉功能強大,可實現在程式內部任意位置跳轉,呼叫形式為:

a: 模組一;//在這裡a是乙個標示符,常用大寫字母表示,表示跳轉後程式執行的起始位子

模組二在c語言中這種形式的呼叫通常發生在選單的製作上,用於多個模組之間進行切換,可以巢狀使用。但是這種程式設計方式並不提倡使用,在跳轉過程中可能會帶來不可預知的bug。應盡量避免使用。

continue

continue一般用於加速迴圈,一般在迴圈體內部進行呼叫,其功能是:結束本次迴圈,是迴圈快速地進入到下一次迴圈中,比如:

for(;;)

當if條件為真時,迴圈進入下一次;

break

一般用於跳出本迴圈,即跳出break所在的迴圈,哪個迴圈呼叫了break,就跳出哪個迴圈;

比如:while()

} 在這段模板中,for 呼叫了break;當執行到break時跳出for,但是不跳出while,而是繼續執行while迴圈

return

一般的用法 時為了實現返回,返回乙個值或其他複雜型別,都是可以的,

return 一般都用在被呼叫的物件(物件一)裡面,呼叫以後返回到呼叫物件(物件二)即,當物件二呼叫物件一時,如果物件一內部呼叫了return語句,則程式執行返回到,物件二呼叫物件一得下一條語句繼續執行,

比如:(這裡的物件在c語言裡面就是函式)

物件一()

物件二()

當程式執行到物件二時,會呼叫物件一,轉到物件一種去執行,當執行到return時,會返回到物件二中,執行語句二

對於你的提問現給出如下解釋:

第乙個程式段

時對於return的呼叫,呼叫之後,程式會跳出main函式,也就是說return有結束函式呼叫的功能。

第二個程式段:

do while();

是乙個迴圈體,break在迴圈內部呼叫,跳出迴圈,但不跳出if,

一般語言裡面的跳轉都滿足上述規律,但不排除,在特殊的演算法內部特殊的應用

希望你能夠明白

9樓:cpp門徒

第乙個:

return 是肯定能抄跳出 if(***)的,return是返回,遇到baireturn直接du就去函式結尾了。

用break;語句效果肯定不一zhi樣,daobreak;只不過是跳出switch(yyy)函式,然後繼續執行下去。

給個**你清楚下:

#include

void main()

printf ("^_^\n");}}

第二個:

break語句不能跳出if(***);break只是跳出迴圈,而不是要結束函式。

給個例子你能更好的看清楚。

#include

void main()

while ( y );

printf ("^_^\n");}}

10樓:匿名使用者

第乙個:

return 直接

copy跳出函式,break只是跳出迴圈(包括for迴圈while迴圈do-while迴圈和switch),這裡用了return之後都跳出函式了,肯定在if之外,而用break只是跳出那層switch,還是在if裡面的

第二個:

同理,這裡的break只能跳出do-while,還是在if裡面

c語言中關於多個for迴圈的問題 5

11樓:匿名使用者

#include

void main()

12樓:匿名使用者

1、最開抄

始進入的是第一層for迴圈,襲在進入第二層for迴圈,一直bai到最後一層dufor迴圈執行完,再返回上一zhi層for迴圈一次,進入dao下一層迴圈,一直到所有迴圈結束。

2、例如:

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

printf("\n");

}/*這裡是3層迴圈,第一次是i=0,j=0,l=0,一直l=4;在返回j=1,l=0,一直到l=4;再返回上一層迴圈,直到j=4;再返回i=1,直到i=4結束整個迴圈,結果就是迴圈125次:

(最外層是是對應5組,第二層是對應25行,第三層是對應0—4)*/

13樓:聽不清啊

圖中二層迴圈都是迴圈3次,所以就輸出9個aa

迴圈全部結束後輸出bb一次。

14樓:

這個實際bai上不是 多個for迴圈的問du題,而是乙個語zhi

句的作用範圍dao的問題

當你需要迴圈的語回句只有一句的時答候,就可以寫成這樣

for(i=0,i<3;i++)

printf("aa\n");

如果有多個的話

就需要用大括號括起來

for(i=0,i<3;i++)

括起來的話,這三句都將迴圈三次。

而不論大括號裡括了多少條語句,for迴圈本身也只算乙個語句。

因此,可以分析你剛才那段**

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

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

printf("aa\n");

printf("bb\n");

先看外邊的for ,它沒有使用大括號{} ,因而只將離他最近得一條語句進行迴圈

而這條語句也是乙個for迴圈。 第二個for 迴圈也沒有大括號,因此也只將離他最近得語句進行迴圈。即將printf("aa\n");進行迴圈。

而最後的printf("bb\n");沒有在任何迴圈裡邊,所以只執行一次。

for迴圈的巢狀,從外邊進入裡邊,將裡邊的迴圈當做乙個整體,幾次迴圈執行完畢後,再回過頭來進行外邊迴圈。總的來說,將裡邊的迴圈看做整體,比較有利於理解。

15樓:劉鴻波

你的程式相對於bai下面這段代du碼:

#include

void main()

}printf("bb\n");}執行

zhi順序如下:

i=0:

j=2;printf("aa\n");j++;

j=3;printf("aa\n");j++;

j=4;printf("aa\n");j++;

i=1;

j=2;printf("aa\n");j++;

j=3;printf("aa\n");j++;

j=4;printf("aa\n");j++;

i=3;

j=2;printf("aa\n");j++;

j=3;printf("aa\n");j++;

j=4;printf("aa\n");j++;

跳出dao巢狀迴圈

執行printf("bb\n");

所以版最終的結果是9個

權aa,乙個bb

16樓:

#include

void main()

17樓:匿名使用者

執行的每一步 順序 如下

i=0,i=2,printf("aa\n");

i=0,i=3,printf("aa\n");

i=0,i=4,printf("aa\n");

i=1,i=2,printf("aa\n");

i=1,i=3,printf("aa\n");

i=1,i=4,printf("aa\n");

i=2,i=2,printf("aa\n");

i=2,i=3,printf("aa\n");

i=2,i=4,printf("aa\n");

printf("bb\n");

**這麼寫讓人 能好理解些。

#include

void main()

裡的**

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

}printf("bb\n");//這個print 不屬於任何循答環裡 所以只執行了1次}

18樓:匿名使用者

先是內層迴圈(即j),再迴圈i,因為沒加{}所以迴圈體只有輸出aa那個,最後退出兩個迴圈時才輸出乙個bb,謝謝

19樓:匿名使用者

先執行一

抄次最外層的for語句,然後執行第二層的for語句襲,直到第二層執行完畢bai

,又回到第du一層的for語句執行一次

zhi,再執行第二層,結果是外迴圈的for語句執行3次,第二層的for迴圈執行(5-2)*3=9次,第二層的迴圈每執行一次就輸出乙個aa,所以輸出9個aa,printf("bb\n")是在for語句的外邊,所以只在最後執行一次,for語句如果每次迴圈都要執行一條以上的語dao句就要在語句外邊加花括號,即如果要執行printf("aa\n");printf("bb\n");兩條語句的話就要寫成

這種形式。

20樓:孤高天子龍

裡面那個迴圈執行3乘3次,外面迴圈執行3次。

原理就是裡面迴圈完了,外面迴圈一次。

21樓:匿名使用者

for巢狀,由外到內。第一層for執行一次,就會到第二層for,直到第二層for迴圈結束,開始第一層for的第二次執行,然後就開始第二層的第二次。。。。直到結束

22樓:秒殺

你可以這樣抄理襲解:

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

printf("bb\n"); //這裡會輸出1個「bb」

C語言for迴圈的問題,C語言迴圈問題

一個偽 告訴你真相 我是大圈 一圈跑完,大圈還要跑嗎 要跑 繼續大圈與小圈的迴圈,不要跑 跳出迴圈 多層巢狀也是一樣 我是外圈 跑完了小圈,繼續中圈 中圈已結束 跳出中圈繼續執行外圈。中圈還沒結束 繼續中圈的迴圈 現在中圈也跑完了,再來跑大圈 如果大圈跑完了,該迴圈結束,還沒有的話繼續上面的奔跑,r...

C語言中,關於while迴圈的問題

include int main int argc,char argv 我在解釋一下,昨天沒說清楚。就算你只輸入了乙個a,這個時候scanf掃瞄緩衝區,發現不是整形,所以直接退出,指標仍舊指在a的位置,下次scanf呼叫的時候,指標仍舊指在a這裡,所以scanf不等待你輸入,但是a不是整數,又直接退...

c語言scanf的兩個問題

對於 123abc789 回車 是因為你的輸入控制格式,兩邊是 d,即整數,中間三個是字元。因此輸入的時間是將123賦值給了a,abc分別賦值給bcd,789賦值給d 對於 123 回車 abc789 回車 首先必須知道,利用scanf輸入的時間,回車是作為有效的字元輸入的這樣其實是a 123,b ...