選擇結構
介紹以下內容:
關鍵字: if、 else、 switch、 continue、 break、 case、 default、 goto
運算子: &&、 ||、 ?:
函式: getchar()、 putchar()、 ctype.h系列
如何使用if和if else語句, 如何巢狀它們
在更複雜的測試表示式中用邏輯運算子組合關係表示式
c的條件運算子
switch語句
break、 continue和goto語句
使用c的字元i/o函式: getchar()和putchar()
ctype.h標頭檔案提供的字元分析函式系列
單純if語句
if students』grade is greater than or equai to 60
print 『』 pass』』
if
(grade >=60)
//end if
if else語句
如果學生成績60以上則輸出「passed」
60分以下則 fialed
if
(grade >=60)
else
//end else
如果是僅有單個語句,可以不加花括號
if
(grade >=60)
printf
("passed");
else
printf
("failed"
);
邏輯運算子
?: 三目運算
|| 或
&& 並
&&的優先順序比||高
printf
("grade >= 60?passed:failed");
printf
(grade >=60?
"passed"
:"failed");
//right
grade >=60?
puts
("passed"):
puts
("failed");
//equal
介紹putchar與getchar
ch =
getchar()
;//equal to
scanf
("%c"
,ch)
;//注意ch的資料型別是字元
事實上,較小的整型也可用字元型表示。
getchar和putchar都只能對單個字元輸入和輸出
優勢:因為它只對字元起作用,因此較於printf等函式,不需要轉換說明,更快更簡潔
if的巢狀
if
(grade >=90)
puts
("a");
else
if(grade>=80)
puts
("b");
else
if(grade>=70)
puts
("c");
else
puts
("d"
);
雖然說單個語句可以不加花括號,但是最好還是要嚴謹。
多重選擇switch示例
switch
(ch)
要對緊跟在關鍵字 switch 後圓括號中的表示式求值。該表示式是剛輸入給 ch的值。 然後程式掃瞄標籤(這裡指, case 『a』 : case 『b』 :等) 列表, 直到發現乙個匹配的值為止。 然後程式跳轉至那一行。
如果沒有匹配的標籤怎麼辦? 如果有default :標籤行, 就跳轉至該行; 否
則, 程式繼續執行在switch後面的語句
break 語句
break使之跳出switch,它讓程式離開switch語句, 跳至switch語
句後面的下一條語句 。 如果沒有break語句, 就會從匹配標籤開
始執行到switch末尾。
switch在圓括號中的測試表示式的值應該是乙個整數值(包括char類
型) 。 case標籤必須是整數型別(包括char型別) 的常量或整型常量表示式
(即, 表示式中只包含整型常量) 。 不能用變數作為case標籤。 switch的構
造如下:
switch
( 整型表示式)
switch的多重標籤
switch
(ch =
getchar()
)//意思就是乙個語句可以有多個標籤
因為case『a』後面沒有break
switch 與if else
何時使用switch? 何時使用if else? 你經常會別無選擇。 如果是根據浮
點型別的變數或表示式來選擇, 就無法使用 switch。 如果根據變數在某範圍
內決定程式流的去向, 使用 switch 就很麻煩, 這種情況用if就很方便:
if (integer < 1000 && integer > 2)
使用switch要涵蓋以上範圍, 需要為每個整數(3~999) 設定case標
籤。 但是, 如果使用switch, 程式通常執行快一些, 生成的**少一些
常出現的錯誤
if (a < x < z) // 錯誤, 沒有使用邏輯運算子
if(ch != 『q』 && != 『q』) // 錯誤, 缺少完整的測試表示式
以上是參考c primer plus做的學習總結
來看看不加花括號會出現什麼問題
懸掛else問題
編譯器通常將else與上乙個if關聯,除非用花括號來指定關聯關係
來確定x= 9 ,y = 1和x = 11,y=9時,下列程式的輸出
if
(x <10)
if(y >10)
puts
("****");
else
puts
("####");
puts
("$$$$"
);
if
(x >10)
else
資料結構初步學習
1.計算遞迴演算法的時間複雜度時要分情況分步驟進行運算,計算空間複雜度時要計算遞迴深度 2.建立鍊錶時頭結點留置放空,並且要進行動態記憶體的建立 3.頭插法建表 void createlistf linklist l,int n 4.尾插法建表 void createlistr linklist l...
C C 學習 選擇結構
if 表示式 語句1 if 表示式 語句1 else 語句2 注意 1 if語句的表示式一般為關係 邏輯運算表示式,但也可以為其他表示式,但按邏輯值來理解 a 5,b 2 if a x a 10 等價於a 0 switch 表示式 注意 1 switch語句中case分支的語句序列可以是乙個語句,也...
學習C 選擇結構程式設計
學習c 選擇結構程式設計 一 語句 語句是程式的基本組成單位,每條語句都以分號 結尾表示該語句的結束。1.表示式語句 運算子 常量 等可以組成表示式,而表示式後加分號就構成了表示式語句。例如 i 10 是賦值表示式,而 i 10 加上分號就構成了表示式語句。2.復合語句 用一對大括號括起來的一條或多...