第三章
3.1.1做判斷
例:計算時間差
輸入兩個時間,每個時間分別輸入小時和分鐘的值,然后輸出兩個時間之間的差,也以幾小時幾分表示

?如果
?
3.1.2判斷的條件
1、條件
計算兩個值之間的關(guān)系,所以叫做關(guān)系運(yùn)算

2、關(guān)系運(yùn)算的結(jié)果
當(dāng)兩個值的關(guān)系符合關(guān)系運(yùn)算符的預(yù)期時,關(guān)系運(yùn)算的結(jié)果為整數(shù)1,否則為整數(shù)0
3、優(yōu)先級
所有的關(guān)系運(yùn)算符的優(yōu)先級比算術(shù)運(yùn)算的低,但是比賦值運(yùn)算的高
判斷是否相等的==和!=的優(yōu)先級比其他的低,而連續(xù)的關(guān)系運(yùn)算是從左到右進(jìn)行的
找零計算器需要用戶做兩個操作:輸入購買的金額,輸入支付的票面,而找零計算器則根據(jù)用戶的輸入做出相應(yīng)的動作:計算并打印找零,或告知用戶余額不足以購買。
從計算機(jī)程序的角度看,這就是意味著程序需要讀用戶的兩個輸入,然后進(jìn)行一些計算和判斷,最后輸出結(jié)果。

注釋
以兩個斜杠“//"開頭的語句把程序分成了三個部分:
初始化
讀入金額和票面
計算并打印找零
延續(xù)數(shù)行的注釋,要用多行注釋的格式來寫。多行注釋由一對字符序列“/* "開始,而以“*/”結(jié)束。
也可以用于一行內(nèi)的注釋
如果在if后面還有語句,它們在if結(jié)束后會執(zhí)行,無論條件如何
如果錢不夠,輸出你的錢不夠
else ?否則的話

一個基本的if語句由一個關(guān)鍵字if開頭,跟上在括號里的一個表示條件的邏輯表達(dá)式,然后是一對大括號“{}”之間的若干條語句。如果表示條件的邏輯表達(dá)式的結(jié)果不是零,那么就執(zhí)行后面跟著的這對大括號中的語句,否則就跳過這些語句不執(zhí)行,而繼續(xù)下面的其他語句。
if語句這一行結(jié)束的時候并沒有表示語句結(jié)束的“;”,而后面的賦值語句寫在if的下一行,并且縮進(jìn)了,在這一行結(jié)束的時候有一個表示語句結(jié)束的“;”。這表明這條賦值語句是if語句的一部分,if語句擁有和控制這條賦值語句,決定它是否要被執(zhí)行。
例:判斷成績
?
3.2.1嵌套的if-else
例:找出三個數(shù)中的最大
如果要求輸入三個整數(shù),輸出其中最大的,應(yīng)該怎么做?

?
1. 嵌套的判斷
當(dāng)if的條件滿足或者不滿足的時候要執(zhí)行的語句也可以是一條if或if-else語句, 這就是嵌套的if語句
?
else的匹配
else總是和最近的那個if匹配
縮進(jìn)格式不能暗示else的匹配
Tips
在if或else后面總是用{}
即使只有一條語句的時候
3.2.2級聯(lián)的if-else if
1、分段函數(shù)
f(x)=-1; x<0
? ? ? ? 0; x=0
? ? ? ? 2x; x>0

代碼:
級聯(lián)的if-else if
忘了大括號
永遠(yuǎn)在if和else后面加上大括號, 即使當(dāng)時后面只有一條語
if后面的分號
錯誤使用==和=
if只要求()里的值是零或非零
4、使人困惑的else ?
在if和else之后必須加上大括號形成語句塊;
大括號內(nèi)的語句縮進(jìn)一個tab的位置;
3.2.4多路分支
1、switch-case
?
控制表達(dá)式只能是整數(shù)型的結(jié)果
常量可以是常數(shù),也可以是常數(shù)計算的表達(dá)式
switch語句可以看作是一種基于計算的跳轉(zhuǎn),計算控制表達(dá)式的值后,程序會跳轉(zhuǎn)到相匹配的case (分支標(biāo)號)處。分支標(biāo)號只是說明switch內(nèi)部位置的路標(biāo),在執(zhí)行完分支中的最后一條語句后,如果后面沒有break,就會順序執(zhí)行到下面的case里去,直到遇到一個break,或者switch結(jié)束為止。
?
成績轉(zhuǎn)換
將一個百分制成績轉(zhuǎn)換為五分制成績,轉(zhuǎn)換規(guī)則
大于等于90分為A
小于90分且大于等于80為B
小于80分且大于等于70為C
小于70分且大于等于60為D
小于60為E