C語言要跳出所有循環(huán),可以使用goto語句。
十多年的益陽網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整益陽建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“益陽網(wǎng)站設(shè)計”,“益陽網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
在所有循環(huán)外,定義一個標識,通過goto語句直達該標識,起到跳出所有循環(huán)的作用。
比如
while(1)
{
//一些語句
for(;;)
{
//一些語句
//當某種條件下?要跳出所有循環(huán)時,調(diào)用
goto?exit_all_loop;
}
}
exit_all_loop:
//跳出循環(huán)后需要執(zhí)行的語句
不過,在結(jié)構(gòu)化編程中并不推薦使用goto語句,所以如果goto被禁用,有跳出所有循環(huán)的需求時,可以把循環(huán)封裝到一個單獨函數(shù)中,通過return退出函數(shù),實現(xiàn)跳出循環(huán)的效果。
if條件語句寫錯了:
if(a=="#") ? ? ? ?判斷字符串相等不能用等號
if?(strcmp(a,?"#")?==?0) ? ? ? 要這么寫
while 是一個循環(huán)體,退出循環(huán)體的方法有:
(1)循環(huán)體條件 不成立,如:while( a0); 當 a≤0 的時候,條件 a0不成立,while 循環(huán)結(jié)束,退出 while 循環(huán)。
(2)在循環(huán)體內(nèi)使用無條件跳出語句(break),如 while(1){if(b5)break;}當 b5 的時候,程序執(zhí)行 break ,跳出 while 循環(huán)體,循環(huán)體被結(jié)束。
(3)在循環(huán)體內(nèi)使用 函數(shù)返回 語句(return),如 while(1){if(c8) return (XXX);},當 c8的時候,程序執(zhí)行 return,退出函數(shù)返回到上級函數(shù)。其中返回值?XXX?需要根據(jù) 函數(shù)類型進行返回。
如 int 型函數(shù) int fun(),XXX?應(yīng)為 int型,空返回值函數(shù) void fun(),XXX 可以省略。
擴展資料:
其他語言中while循環(huán)的語法:
1、Pascal
while 條件 do 語句
意為當條件符合時,接著做下面的語句;不符合時,退出循環(huán)。
2、C語言
do 語句 while(條件);
while(條件) 語句;
3、Java
while(條件) {語句;}
do {語句;} while(條件);
二者的區(qū)別是do-while最少會被執(zhí)行一次。
循環(huán)中可以使用continue結(jié)束當前循環(huán),回到循環(huán)開始處開始下一次循環(huán)。也可以用break跳出整個循環(huán)。
break和goto都可以直接跳出,break只能跑出當前一層,goto可以跑出到任何位置。
跳出while循環(huán)有以下四種可能:
1 while(expr)的判斷條件為假時,自動退出循環(huán)。即expr值為0。
2 while中執(zhí)行到屬于while自身的break語句。break語句的功能就是跳出所在循環(huán),所以這個可以實現(xiàn)強制跳出。
3 當執(zhí)行到return語句。 如果執(zhí)行了return語句,會退出整個函數(shù),自然就跳出循環(huán)了。
4 執(zhí)行g(shù)oto語句,同時目標在循環(huán)外。如果goto語句指向的標簽在循環(huán)外,那么程序會無條件執(zhí)行該點,同樣也可以達到退出循環(huán)的效果。
應(yīng)該先遍歷數(shù)組,根據(jù)遞推式求出數(shù)組全部元素
然后輸入一個數(shù)就輸出相應(yīng)的數(shù)組元素值即可
當scanf("%d", k)返回值為EOF時表示輸入結(jié)束
C語言代碼和運行結(jié)果如下:
輸出符合樣例,望采納~
附源碼:
#include stdio.h
int main() {
int a[30], i, k;
a[0] = 0, a[1] = 1;
for (i = 2; i 30; i++) // 先求出數(shù)組全部元素值
a[i] = a[i - 1] + a[i - 2];
while (scanf("%d", k) != EOF) { // EOF為輸入結(jié)束的標志
printf("%d\n", a[k]);
}
return 0;
}