1樓:兔子和小強
雖然書上不建議使用goto,但有時候比如從多重迴圈跳出使用goto,簡潔,又方便。
不濫用goto就可以了。
2樓:w休息的風
不推薦使用goto語句。而return它是直接返回了。該函式執行完畢了。
你可以使用這個return來實現。但是你只是單純跳出整個迴圈,而且還想繼續往下執行,那麼你就不能用return了。你可以把演算法改改試試。
3樓:匿名使用者
可以設定標誌變數flag,初始值為0,當最內層的迴圈達到你的要求的時候flag=1,之後再break,外層迴圈加上一句if(flag==1)break;就可以了
4樓:沐漁紫露
可以設定一箇中間變數,若有了輸出結果則此變數被賦值為1,在內迴圈外外迴圈內判斷這個中間變數,若為1說明要跳出整個迴圈,再用break就ok了;如:
int i=0;
for(;;)
if(i==1)
break;}
5樓:
辦法很多,提供四種:
這種情況下goto是最好使的,注意規避它的弊端就是了。
如果在自定義函式裡,又已完成了操作,一個return;就解決問題了。
只想跳出這一多層迴圈,**還要繼續,那就得事先設定一個變數記錄這種情況,在要跳出的break;前改變這個標記;在每層迴圈的最後判斷這個標記,符合跳出條件時就break;,層層照此辦理即可。
在要跳出的break;前面,把所有外層迴圈的控制變數都修改為無效——這辦法雖有效,但條件是每層不得再有**執行,就是說break的那一層邏輯上總是在外層的最後。
6樓:匿名使用者
初學請用break
高手請goto
c語言的迴圈巢狀是先執行最裡面的迴圈在依次往外迴圈?
7樓:寶寶
所有的語copy
言都是順序執行的,自bai
上而下,自左而有。程式從外迴圈du執行zhi下去,遇到內迴圈後就執行內迴圈語dao句。內迴圈語句執行完成後,繼續往下執行,遇到外迴圈的語句時,進入下一次外迴圈。
跟大家說下c語言迴圈的知識,以下以for迴圈為例,內迴圈與外迴圈的區別在於{}的位置:
for(int i = 0;i<10;i++)}其中for(int j=0;j<10;j++)為內迴圈,for(int i = 0;i<10;i++)為外迴圈,執行過外迴圈之後才會執行內迴圈。
8樓:琦玉
for( "1" )
}首先,程式執行到第一個for迴圈,進入後執行第二個for迴圈,當跳出第二個循內環後接著往下容進入第一個for迴圈內部繼續執行
c語言裡,在迴圈巢狀中continue語句跳出本次迴圈時,跳出的是內迴圈還是整個外迴圈?
9樓:匿名使用者
continue 均是跳出內迴圈 ,
如果你要跳出外迴圈 只有自己加個跳出標識
在迴圈前判斷標識,手動跳出
10樓:匿名使用者
是內迴圈啊,continue跳過的是當前迴圈的這一次操作,繼續進行當前迴圈的 下一次操作
11樓:匿名使用者
一般做法是每一級迴圈定義一個額外的標誌來決定迴圈是否退出,如:
bool bisend = false;
while(!bisend)} }
c語言的迴圈巢狀是先執行最裡面的迴圈在依次往外迴圈?
12樓:匿名使用者
始終記住一點,目前所有的語言都是順序執行的。程式從外迴圈執行下去,遇到內迴圈後就執行內迴圈語句。內迴圈語句執行完成後,繼續往下執行,遇到外迴圈的右}時,進入下一次外迴圈。
下一次外迴圈又會執行內迴圈。這樣子說應該明白了吧。建議你多看本基礎的書,自己系統的學一遍基礎知識,養成計算機的思考方式。
靜下心來看一下the c programming,一遍看不懂看2遍。這是c語言創始人寫的,他對c的瞭解比其他人深刻的多。有英文基礎的話最好英文版的。
13樓:仍語
所有的語言都是順序執行的,自上而下,自左而有。程式從外迴圈執行下去,遇到內迴圈後就執行內迴圈語句。內迴圈語句執行完成後,繼續往下執行,遇到外迴圈的語句時,進入下一次外迴圈。
for(int i = 0;i<10;i++)
}其中for(int j=0;j<10;j++)為內迴圈,for(int i = 0;i<10;i++)為外迴圈,執行過外迴圈之後才會執行內迴圈。
14樓:比利_嗨靈頓
、最開始進入的是第一層for迴圈,在進入第二層for迴圈,一直到最後一層for迴圈執行完,再返回上一層for迴圈一次,進入下一層迴圈,一直到所有迴圈結束。
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)*/
15樓:琦玉
for( "1" )
}首先,程式執行到第一個for迴圈,進入後執行第二個for迴圈,當跳出第二個迴圈後接著往下進入第一個for迴圈內部繼續執行
c語言裡if語句可以巢狀for迴圈麼
16樓:聽不清啊
c語言裡if語句
裡是可抄以巢狀for迴圈的(if語句裡可以放c語言裡的任意的執行語句)。
舉例說:
char yn;
int i;
printf("需要列印1到10之間的所有奇數嗎(y/n)?\n");
scanf("%c",&yn);
if(yn=='y'||yn=='y')
else
printf("那就不列印了\n");
17樓:匿名使用者
當然可以,肯定是你記錯了
比如int n=5,i=0;
if(n==5)
}else
18樓:詭其辭
記錯了吧?可以巢狀。
19樓:匿名使用者
if 換成while
c語言的for迴圈巢狀怎麼執行的?
20樓:突突無限
結果如抄圖,有140個a ,for迴圈巢狀進襲行,每次先進行了完了一次內部迴圈,再進行外部迴圈,例如
for(i=0;i<5;i++)for(j=0;j<5;j++)每次執行一次第一個i的迴圈,就會執行五次j的迴圈。
還有,你的程式有一點錯誤:getch()是定義在庫函式conio標頭檔案中的,所以開頭加上#include就行了
不知道我的回答你是否滿意。
21樓:匿名使用者
1.你的問題直bai接答案:先執行完du所有內迴圈,zhi再執行外迴圈,dao
然後k=i;再進入內專迴圈。內屬迴圈執行完成後再到外迴圈。
2.流程控制:順序,選擇,迴圈(流程控制都看不懂,學程式語言學不會的)。
簡單解析你的問題:
先外迴圈for(i=0(只執行一次);i 3.不懂可以繼續問,不幫你弄懂說明我的理解不深刻。 22樓:連冉家谷之 可以寫成if(i==x),但不能寫成if(i=x) i的確是不可能大於x,但是i>=x是隻要滿足i>x或者i=x就能執行的,所以條件寫i>=x和i==x是沒區別的. 23樓:蕭竣閏 外層迴圈執行復一次,制內迴圈執行所有符合條件的次數。 例:for(i=1;i<=5;i++) }i=1時j=1,j=2,j=3,j=4,j=5;即外層迴圈迴圈了一次,內層迴圈了5次。 所以外迴圈共迴圈了5次,內迴圈共迴圈了25次 24樓:匿名使用者 在vc6.0中 for(i=0;i<4;i++)處新增斷點(f9),然後執行到斷點處按f10 除錯執行一直到結束 25樓:匿名使用者 for(i=0第一步;i<4第二部;i++第四步) { 第三步{ 26樓:匿名使用者 用vc6 自己除錯一步步執行下就知道了 27樓:三十褚龍 (4+3+2+1)*(5+4+3+2)=140個 不光是在while裡 在所有的迴圈中,如for,do.while,while裡。break都是跳出當前這一層的迴圈,要是多層迴圈的話,也是隻跳出這一層迴圈。終止這一次的迴圈是用continue.reak 是跳出迴圈體 執行下面的語句的意思 在你這個題目中是 switch 語句回巢狀在for語句當中!... 所有的語copy 言都是順序執行的,自bai 上而下,自左而有。程式從外迴圈du執行zhi下去,遇到內迴圈後就執行內迴圈語dao句。內迴圈語句執行完成後,繼續往下執行,遇到外迴圈的語句時,進入下一次外迴圈。跟大家說下c語言迴圈的知識,以下以for迴圈為例,內迴圈與外迴圈的區別在於 的位置 for i... 始終記住一點,目前所有的語言都是順序執行的。程式從外迴圈執行下去,遇到內迴圈後就執行內迴圈語句。內迴圈語句執行完成後,繼續往下執行,遇到外迴圈的右 時,進入下一次外迴圈。下一次外迴圈又會執行內迴圈。這樣子說應該明白了吧。建議你多看本基礎的書,自己系統的學一遍基礎知識,養成計算機的思考方式。靜下心來看...c語言中,for迴圈裡巢狀了switch迴圈,switch循
c語言的迴圈巢狀是先執行最裡面的迴圈在依次往外迴圈
c語言的迴圈巢狀是先執行最裡面的迴圈在依次往外迴圈