第6章 C控制語句 迴圈

2021-07-03 08:58:25 字數 3161 閱讀 6829

c語言的流程控制:順序、迴圈、分支。迴圈結構:while迴圈、for迴圈和do while迴圈。

6.1再探while迴圈

status = scanf(「%ld」,&num);

while(1 == status )  //判斷條件

sum = sum + num;

status = scanf(「%ld」,&num);//返回成功讀入的專案的個數。

scanf的兩個功能:第乙個,使用scanf()嘗試為num讀入新值

第二個,使用scanf()的返回值來報告執行是否陳功。

如果成功scanf成功讀入乙個整數,就把這個整數放在num中並返回值1,任何非數字輸入都會使迴圈終止。

while迴圈是乙個入口條件迴圈,程式必須在進入迴圈體之前獲取輸入並檢查status的值。

替換為while(scanf(「%ld」,&num) == 1);

6.2 while語句

while(expression) //只關心expression的真假

statement

1、入口條件的有條件迴圈,進入迴圈體之前必須滿足這個條件。

2、迴圈何時終止,只有在計算判斷條件的值時才決定是種植迴圈還是繼續執行  迴圈三要素:初始條件 判斷條件  改變判斷值

6.3 關係運算子和表示式

1、while迴圈經常要依賴進行比較的判斷表示式,關係表示式。這些語句檢查表示式為真還是為假。   每個關係表示式都被判定為真或為假。(永遠沒有也許) 

2、關係運算子  >  >=  <  <=  ==  !=   關係表示式可以用於字元得比較,不能使用關係運算子來比較字串。

3、c語言中什麼是真?

c的表示式通常具有乙個值,關係表示式也是如此。

true_val = (10 > 2);  //乙個真表示式的值  true_val = 1

false_val = (10 == 2);//乙個假表示式的值  false_val = 0

對於c語言來說,乙個真表示式的值為1,乙個假表示式的值為0。

c語言中,所有的非零值都被認為是真,只有0被認為是假。c對真的範圍放的很寬!要謹記關係表示式為真,它的值為1;如果為假,它的值為0。

while(goats != 0)   等價於  while(goats)

4、真值的問題

while(status = 1);

status = 1為賦值語句,複製表示式的值就是其左側的值,這樣status = 1的值也為1。實際這個迴圈就是while(1),死迴圈。

注意:不要在應該使用 == 的地方使用 = 。

5 = canoes  語法錯誤

5 == canoes  檢查canoes的值是否為5    總之,關係運算子被用來構成關係表示式。關係表示式為真時值為1,為假時值為0。使用關係表示式作為判斷條件的語句。

5、新的_bool變數

#include //如果沒有此標頭檔案    bool代替_bool,並把true和false定義為1和0的符號常量。  bool true  false 

#defined bool  int   #define true  1    #define  false  0

表示真假的變數開始被稱為布林變數。乙個布林變數只可以具有值1(真)或0(假)。

6、運算子的優先順序

6.4 不確定迴圈與計數迴圈

1、不確定迴圈。  有些while迴圈的例子是不確定迴圈,在表示式為假之前你不能預先知道迴圈要執行多少次。  例如:6.1使用互動式的迴圈來計算整數和

2、計數迴圈。  迴圈執行預先確定的次數。

a、初始化計數器  b、計數器與某個有限的值進行比較  c、每次執行迴圈計數器的值都要進行遞增。

6.5 for迴圈

for迴圈把初始化、判斷條件、更新都放在一起。

形式:for(初始化;判斷條件;更新引數)

statement;  

1、for迴圈的靈活性

a、你可以使用減量運算子來減小計數器而不是增加它

for(a = 5; a > 0; a--)

b、你可以將計數器依次加2、加10等

for(n = 2; n < 60; n = n + 10)

c、字元代替數字進行計數

for(ch = 『a』; ch <= 『z』;ch++);

d、判斷迭代次數之外的條件

for(a = 1; a*a*a <= 216; a++)

e、幾何增加而不是算術增加,不是加上乙個固定的數,而是乘上乙個固定數

for(n = 2; n < 60; n = n * 5)

f、在第三個表示式中,你可以使用所需的任何合法表示式。

for(x = 1; y <= 75; y = (++x * 5) + 50);

g、迴圈中的動作可以改變迴圈表示式的引數。

for(n = 1; n < 1000; n = n + delta);

6.6 賦值運算子

逗號運算子   

1、它保證被他分開的表示式從左到右的次序進行計算(逗號是個順序點,逗號左邊產生的左右***都在程式執行到右邊之前生效)

2、逗號表示式是最後乙個值作為整個表示式的值。

x = (y = 3, (z = ++y + 2) + 5);

3、houseprice = 249,500; 這並沒有語法錯誤。c把它解釋成為逗號表示式,左子表示式,右子表示式,整個表示式的值就是右邊表示式的值。

houseprice = (249,500);     逗號也經常被用作分隔符號。

6.7 選擇哪種迴圈

首先確定入口條件迴圈還是退出條件迴圈,通常是入口條件迴圈。若干原因科學家認為入口條件迴圈更好一些。但是用while還是用for.

while迴圈對以下的條件是自然的:

while(scanf(「%ld」,&num) == 1);

for對於涉及到用索引計數的迴圈,涉及到初始化和更新變數時。

for(count = 1; count <= 100; count++);

6.8 巢狀迴圈

巢狀迴圈指的是在另乙個迴圈之內的迴圈。通常使用巢狀迴圈來按行按列顯示資料。也就是說乙個迴圈處理一行中所有的列,而另乙個迴圈則處理所有的行。

1、內部迴圈在外部迴圈的每次單獨迴圈中都完全執行它的所有迴圈。

2、巢狀變化。內部迴圈一部分依賴於外部迴圈,可以使內部迴圈在每個週期中的表現不同。依賴於外部迴圈的次數。const代替 #define

第6章 迴圈結構

while 先驗迴圈,先判斷在迴圈 do while 後驗迴圈 先執行,在判斷是否迴圈。for 先驗迴圈 while 表示式 迴圈體語句 do迴圈體語句 while 表示式 for 表示式1 表示式2 表示式3 迴圈體語句 表示式1為迴圈變數賦初值,表示式2為 迴圈結束的判斷條件 表示式3為改變迴圈...

第4章 控制語句

1 基本結構 順序結構 分支結構 迴圈結構 2 if else if else 3 switch switch 表示式 case 常量1 語句 break default 語句 switch後面的表示式可以是 整型,字元型表示式 case後的常量可以是 整數,字元,常量表示式 例 已知a,b,用sw...

C 迴圈控制語句

本節課將介紹如何使用c 控制語句中的迴圈語句,本課目的如下 1.學會 while 迴圈的用法。2.學會 do 迴圈的用法。3.學會 for 迴圈的用法。4.學會foreach迴圈的用法。5.進一步了解 break 語句的用法。6.如何使用 continue 語句。在c 中,使用 goto 語句並不是...