選擇結構的初步學習

2021-10-02 03:29:42 字數 3396 閱讀 7212

選擇結構

介紹以下內容:

關鍵字: 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.復合語句 用一對大括號括起來的一條或多...