銀狼的python課堂第四集

螺絲咕姆的C艸課堂開課了!第三課 if判斷 邏輯運算
開拓任務 if判斷,邏輯運算 開始
在編程中,經(jīng)常會遇到判斷的地方,這個時候,我們就要請出非常厲害的if了
在學習if之前,我們要先明白邏輯運算符,和布爾值
布爾值一共就只有2個
分為true和false,咱們一個一個講
True,也可以寫成true,1,(3種寫法都為正確),也就是真,正確的,可以理解為通過
False,也可以寫成false,0(3種寫法都為正確),也就是假,錯誤的,可以理解為停止。
布爾值有一個很神奇的地方,也就是數(shù)字也可以代表布爾值,像下面這些例子,都不會報錯
bool n = 1;
代表n這個變量現(xiàn)在值為true
int n = 1;
代表n這個變量值為1
這個時候,布爾值的一個特性來了,就是如果你把int類型的n,去做邏輯運算,系統(tǒng)會默認你這個int類型的1為true
既然我們了解了布爾值的作用,那就來看看邏輯運算符吧邏輯運算符目前階段我們能用到的有
`>`大于號,a>b,這個時候,如果a大于b,將會返回true,如果a小于b,就會返回false
`<`小于號,a<b,這個時候,如果a小于b,將會返回true,如果a大于b,就會返回false
`==`,這個符號是用來判斷2邊是否相等的,如果相等,則返回true,不相等返回false,需要注意的是,==不光可以判斷2個數(shù)或者字符或者字符串的相同,也可以用布爾值判斷,比如說,true==false,明顯是不對的,所以返回false,但是不要以為,false==false總是true了吧,你要記住,布爾值判斷的時候,依然是false,但如果是2個字符串,可能就是true了。所以==布爾值判斷記住,一邊為false,直接為false,2邊都為true,才為true
`!=`,這個符號是用來判斷2邊是否不一樣,如果左邊和右邊不相等,則返回true,否則返回false,布爾值判斷只有true!=false和false!=true能返回true,其余的不行
大于和小于分別有一個>= <=,也就是說,如果a大于或者等于b,則返回true,否則返回false,<=同理
if判斷
if語句用于判斷這個邏輯表達式是否為true,如果為true,則執(zhí)行if中的代碼,如果為false,就直接跳過if語句中的代碼,繼續(xù)執(zhí)行后面的代碼
框架如下
if (判斷語句){
執(zhí)行的代碼;
}
舉個例子
int a = 34,b = 0;
if (a >= b){
cout << a;
}
這個代碼輸出的就是a的值,也就是34
else
在if中,可以開出一個分支,稱謂else,else的意思是否則,if是如果,也就很好理解了,如果if判斷失敗了,寫了else的話,會直接執(zhí)行else中的代碼
例子如下
int a = 34,b = 10086;
if (a > b){
cout << a;
}
else{
cout << b;
}
這個時候就不會輸出a了,也不后悔直接結(jié)束,而是輸出b,因為if判斷失敗 ,程序走向else,但是else里面是cout << b;所以直接輸出b。
需要注意的是,沒有if的時候,是不可以單獨寫else的,如果你非要寫,運行會發(fā)現(xiàn)一句很好的話:[Error] 'else' without a previous 'if'(看不懂的去度娘)
Python else
不得不說,某狼貌似沒講else,偷偷告訴你們,Python中,else的功能完全一樣,注意事項也一樣,只需要這么寫,如下
a = 34
b = 10086
if a > b:
print(a)
else:
print(b)
會輸出b的值哦~
else if
到這里就不得不說一句了,隔壁銀狼講Python貌似沒講elif,那我就幫你講了~
elif
Python中,elif是加在if和else中間的,也算是一個縫合怪,elif就是else if,否則如果的意思,用于if語句失敗,如果有elif,將會走向elif,如果elif為true,則執(zhí)行完elif的語句后,跳過else,和多余的elif,直接走向后面的語句,例子如下
a = 34
b = 10086
if a > b:
print(a)
elif a < b:
print(b)
else:
print(b-a)
這里,會輸出b得值,然后跳過else,執(zhí)行接下來的語句
但如果elif的結(jié)果還是false,也會執(zhí)行接下來的else
需要注意的是,沒有if,同樣也不能有elif,否則一樣報錯~
else if
定義和Python一毛一樣,注意事項也是,具體例子如下
int a = 34;
int b = 10086;
if (a > b){
cout << a;
}
else if (a < b){
cout << b;
}
else {
cout << b-a;
}
輸出的是b的值
需要注意的是,else和else if(elif)都需要if,不可以單寫,但是有if,有else if(elif)沒有else可以嗎?可以的,可以在加多個else if(elif)嗎?可以的,
一個小特性,C艸專用
如果你的if,elseif,else中只有一行執(zhí)行語句,可以不加大括號哦~,例子如下
int a = 34;
int b = 10086;
if (a > b)
cout << a;
else if (a < b)
cout << b;
else
cout << b-a;
這樣寫是沒有問題的,但是推薦是加上大括號,這樣復雜的代碼會讓找bug的你更舒服,當然像上面那種簡單的代碼,不加也行。
有人會問
int a = 34;
int b = 10086;
if (a > b){
cout << a;
}
else if (a < b)
cout << b;
else
cout << b-a;
我一個加,其他不加可以嗎? 答案是可以的,else,else if同理
要記住,如果只有一句執(zhí)行語句,才可以不加大括號,當語句>=2的時候就必須加了,而且大括號不影響程序運行,不用擔心
int a = 34;
int b = 10086;
if (a > b){
cout << a;
cout <<"螺絲咕姆真聰明?。?!";}
else if (a < b)
cout << b;
else
cout << b-a;
上面這種寫法是不影響程序運行的~,不要懷疑大括號的位置,只要前大括號在判斷后面那個括號的后面,執(zhí)行語句中執(zhí)的前面,后大括號在執(zhí)行語句分號的后面,下一行代碼的下前面,或者else ,else if,e的前面,就不算錯
if (判斷)
執(zhí)行語句;
下一行代碼;
else
else if
今天的課上到這里就結(jié)束了~,下課
開拓任務 if判斷,邏輯運算 結(jié)束
接受任務 課后練習3
請各位開拓者寫一個年齡判斷程序,要求要用戶輸入自己的年齡,
年齡
≤
100
年齡≤100,如果小于18輸出:-18,如果大于等于18輸出:18+,否則輸出:EROOR