c語言的while死迴圈使用

2022-07-09 21:51:15 字數 1867 閱讀 7950

上星期群裡剛上大一學c語言的朋友問了一道題目,要求是這樣的:

「迴圈輸入一串數字,當輸入到-1為止,將-1前的所有資料求和並求出平均數,並保留兩位小數」

例如

「輸入:1,2,3,-1 輸出:2.00」

「輸入:-1 輸出:無資料」

因為不定數輸入的問題,很顯然對於剛學到if,for,while的大一新生來說有些困難,所以在這邊聊一下關於老師不讓你寫的「死迴圈」和不建議去寫的「break」的問題。

那麼就有人問了:磚!什麼是死迴圈呢?

死迴圈簡單講就是乙個永久停不下來的迴圈,典型的死迴圈問題就是「套娃」(x)。

正經的講,迴圈是怎麼進行的呢?例如while迴圈的用法規則,

while(條件)

條件給的返回值是乙個布林值,常用的布林值有:true,false,0,1

對於while來說條件處於true或者1時,就會進行迴圈體內的語句,而條件處於false或者0時它就會停止迴圈,

那麼如果條件一直為true它將一直進行迴圈,一直進行迴圈體中的語句(就會和你的電腦比誰命長)這種迴圈就是死迴圈。

例如:

int i =1;

while(i == 1)

這裡的i == 1返回值為布林值true,也就是說如果不改變i的資料它會一直迴圈到天荒地老。

你想讓這個迴圈停下來也很簡單,只需要讓while內的條件也就是i == 1的返回值變為false就好。

例如:

int i = 1;

while(i==1)

如果放在這個題目中也不失為一種解法,不過這偏離死迴圈和break的主題了。

下面就扯一下break的使用了:

break在迴圈中的用法是跳出當前迴圈,原理很簡單,當你認為乙個迴圈該停了以後就可以break掉它

例如:

while(true)
啪,很快啊,這小夥子(x)這小迴圈直接就停掉了

break有個特性就是僅能跳出當前執行的迴圈

例如這一部分**:

while(true)

}

這個乙個break並不能跳出while迴圈,當執行到break時他會從for迴圈中跳到while迴圈中繼續進行while迴圈注:if不是迴圈

如果全部跳出則需要:

while(true)

break;

}

下面就是關於這些的操作例項,拿朋友問我的那道題做演示:

1、題目要求是做乙個迴圈輸入,這裡用到了乙個while(true)去做乙個所謂的死迴圈

2、當輸入到-1時需要做乙個迴圈跳出,於是拿乙個if做條件判斷進行break操作

具體**如下:

#include int main()

sum = sum + in;

i = i + 1;

} if (i != 0)

else

return 0;

}

所以0的存在本身就是乙個false,有1嗎?

Shell語言 While死迴圈

原文 在linux下程式設計的程式猿都知道shell指令碼,就算你不怎麼熟悉,也應該聽過的吧!那在shell指令碼中的死迴圈該怎麼寫呢?對於熟悉c語言的猿人們來說,最簡單的死迴圈應該這樣寫 while 1 do something或者你也可以用for語句和do while語句來實現,這裡就不說了!可...

while 1 和for 死迴圈對比

這是在c中的死迴圈方式 include intmain void return0 include intmain void return0 兩種迴圈在構造死迴圈時的區別 用while構造死迴圈時,一般會使用while true 來構造死迴圈 而用for來構造死迴圈時,則使用for 來構造死迴圈。這兩...

C語言死迴圈,「貪心法」

死迴圈問題例項 int i int a n for i 0 i n i 根據編譯軟體的不同,這段 出現的問題也有不同,一般如果出現錯誤,原因如下 以上這段 編譯器給變數分配記憶體時變數i的記憶體會在陣列a n 的後邊,迴圈內給陣列內的變數賦值是從前往後寫入位址的,當i n時已經寫到編譯器給i分配的那...