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 語句並不是...