一、學習目標
- 了解什么是條件判斷
- 了解多個條件判斷
- 了解輸入
- 了解什么是邏輯與、邏輯或
目錄
預備第一篇,使用軟件介紹在這一篇,C++與C使用的軟件是一樣的,查看這篇即可:《軟件介紹》
想了解編譯原理和學習方法點這篇,學習方法和一些原理C++與C都是相同的《脫離學習誤區》
《零基礎看得懂的C++入門教程 》——(1)第一個C++程序就讓你知其所以然
《零基礎看得懂的C++入門教程 》——(2)什么是數據類型、變量?一看便會
《零基礎看得懂的C++入門教程 》——(3)表達式花樣挺多鴨
推薦
1.《備受好評的看得懂的C語言入門教程》
二、學習過程
2.1 了解輸入
在程序編寫中,輸出是指編寫的程序向外發送一個內容。在使用cout進行輸出內容顯示的時候是指向程序外輸出一個內容并且顯示;輸入則是值用戶(我們)在程序運行時輸入一個值到程序之中。例如我們登陸游戲,登陸聊天軟件時輸入的帳號密碼都是輸入操作。
在C++中使用cin進行輸入。示例如下:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;cout<<a;
}
如上程序使用了cin進行輸入,在這里要注意的是cin的>>朝向于cout朝向并不一致,是相反的;我們可以這樣理解,cin是輸入,是需要接收用戶輸入的值,并且將這個值存儲到一個變量之中;在這里我將存儲的值存入變量a中;所以朝向尖端指向a。在cout中是表示輸出,則使用cout往外輸出一個值,這個過程就像是一個推出去的過程,那么尖括號的嘴巴就朝向變量名方向。(當然這是個人經驗,不適用于所有人)
以上程序將在運行時等待我輸入一個值,隨后將值存儲在變量a中,并且下一行輸出我輸入的內容。
運行結果為:
接下來我們做一個程序,判斷我們輸入的內容是否等于6666,如果等于6666那么就顯示正確。
2.2 了解if條件判斷
需要判斷一個數是否等于某值,那么需要進行條件判斷。條件判斷就像你約好朋友說第二天如果天氣好就去打球,那么需要判斷的是第二天天氣是否晴朗。
進行條件判斷需要使用if語句。if語句的作用是判斷一個表達式是否正確;在我們上一小點內容中,將輸入的內容存儲值變量a中,現在我們需要判斷變量a的內容是否等于666,那么這個表達式可以寫成:
a==666
在C++中,使用一個等于號表示將等于號右邊的值給左邊的變量,使用兩個等于號則表示判斷等于號的左右兩邊是否相等。由于這只是單純的一個表達式,這個表達式將會返回一個值來表示這個判斷是否正確;這個值只是作為一個值而存在,我們還需要使用if 這個關鍵字進行判斷。代碼如下:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;if(a==6666){cout<<"正確";}
}
以上代碼中,使用if語句對a進行判斷。if語句的格式為if語句后接一個圓括號,在圓括號中編寫表達式,if將會判斷表達式是否正確;接著在圓括號后有一對花括號,在花括號中編寫表達式判斷正確后執行的代碼,格式如下:
if(表達式){表達式正確編寫的代碼
}
以上代碼運行的結果為:
當然,正確執行的代碼當然不可能只能寫一條,可以寫多條。例如:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;if(a==6666){cout<<"正確";cout<<"輸入的內容是:"<<a; }
}
結果為:
以上實例中,若我們輸入錯誤則不會有任何提示。那我如何在輸入錯誤時提示我輸入錯誤呢?這時候需要使用else語句,如下示例:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;if(a==6666){cout<<"正確";cout<<"輸入的內容是:"<<a; }else{cout<<"對不起,你輸入錯誤!";}
}
以上代碼中,在第一個if圓括號后的花括號結束后添加了else關鍵字,并且在else關鍵字后添加了一對花括號,在花括號中編寫了提示內容。運行結果如下:
由上可知,我們的if else語句結構如下:
if(表達式){表達式正確編寫的代碼
}else{表達式錯誤編寫的代碼
}
由于我們的if else是一個結構,不能打斷結構連接性。
2.3 了解邏輯或
假設現在我們更換一下密碼,密碼更改為6666或者這個數能夠被2除斷余數為0也算正確。這時需要同時滿足兩個條件,一個是等于6666時正確,還有一個條件是被2除斷余數為0也正確,那這個時候就需要進行邏輯運算,示例如下:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;if(a==6666 || a%2==0){cout<<"正確";cout<<"輸入的內容是:"<<a; }else{cout<<"對不起,你輸入錯誤!";}
}
以上代碼主要查看if的條件 a==6666 || a%2==0
。我們先把這個條件分解,一個條件是a==6666
,另外一個條件是 a%2==0
;其中 a%2==0
表示我們輸入的a進行取余數計算,是對2取余數,取余數使用的運算符是%;如果能夠被2取余數為0,表示能夠整除2,那么密碼也是正確。最為關鍵的其實為兩個表達式中間的邏輯或運算發“||”,邏輯或運算符表示一個或運算;或的作用舉一個例子,我明早上吃包子或者吃米粉。這一句話表示我只吃其中一樣,兩個都行;而或運算也是這個意思,或運算符“||”左右兩邊有一個對那么算對了。這個時候我輸入6666也正確,輸入10也正確。結果如下:
或也可以多個條件:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;if(a==6666 || a%2==0 || a==0|| a==7){cout<<"正確";cout<<"輸入的內容是:"<<a; }else{cout<<"對不起,你輸入錯誤!";}
}
以上代碼則表示輸入2除的斷的正確,輸入0和7也正確。
2.4 了解邏輯與
邏輯與與邏輯或非常相似。邏輯或是滿足一個就ok,邏輯與則表示都需要滿足。例如我明早上需要吃米粉和包子。這句話的意思是我包子和米粉都需要吃,少一個都不行。
現在我們的密碼更改為要大于100,并且能夠跟2除的斷。那么這兩個條件為a>100和a%2==0;那么他們之間使用一個邏輯與運算符連接那么就可以做邏輯云運算了;示例如下:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;if(a>100 && a%2==0){cout<<"正確";cout<<"輸入的內容是:"<<a; }else{cout<<"對不起,你輸入錯誤!";}
}
以上內容使用了邏輯與運算符對表達式進行連接。
運行結果如下:
2.4 了解多條件判斷
以上內容講解了如何在一個if條件中使用多個條件進行判斷,現在我們講解多個if條件的判斷。使用if…else if…else if …else可以判斷多個條件。示例如下:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;if(a==1){cout<<"輸入的內容是1"; }else if(a==2){cout<<"輸入的內容是2"; }else if(a==3){cout<<"輸入的內容是3"; }else{cout<<"輸入的是其他值";}
}
以上使用了if…elseif…else結構。在else if 后跟接一個圓括號并且編寫上表達式,即可完成對這個條件的判斷。假設if語句的條件不成立,將會繼續按照順序從商往下對每個else if的條件進行判定,所有條件都不對,那么則執行else語句,若找到正確的表達式,則直接結束整個if結構。運行結果如下:
if…elseif…else語句內的條件都可以使用多個,通過邏輯與、邏輯或進行判斷。elseif也是可以使用多個的。
2.5 了解switch條件判斷
switch 的作用跟if語句一樣,我們直接看他的語法結構:
switch(表達式){case 等于的值1:等于這個值則需要執行的代碼1break;case 等于的值2:等于這個值則需要執行的代碼2break; case 等于的值3:等于這個值則需要執行的代碼3break;.........default:所有的值都沒有等于則執行default后的內容
}
以上為switch語句的模板,跟if一樣,輸入一個值傳遞給一個變量a,把a直接放到switch表達式中,若a等于case 后面所輸入的值,那么則執行這個case后面所對應break之前的代碼。示例代碼為:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;switch(a){case 1:cout<<"輸入的內容是1"; break;case 2:cout<<"輸入的內容是2"; break; case 3:cout<<"輸入的內容是3"; break;default:cout<<"輸入的是其他值";}
}
運行結果為:
如果刪掉其中的break,則不會中斷switch結構,直接運行接下來其它case中的代碼,直到遇見break為止;不管條件對不對都會運行,一定要注意。例如:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;switch(a){case 1:cout<<"輸入的內容是1"; case 2:cout<<"輸入的內容是2"; break; case 3:cout<<"輸入的內容是3"; break;default:cout<<"輸入的是其他值";}
}
我在以上代碼中刪除了case 等于1時要執行的代碼中的break,這時將會往下運行其它case正確后運行的代碼,直到遇見break進行跳出,不需要滿足條件。break的作用是跳出該結構的意思。結果為:
2.6 了解條件判斷的嵌套使用
條件判斷是可以嵌套的,在編程中很多結構都可以相互嵌套,這點需要記住。例如如下代碼:
#include<iostream>
using namespace std;
int main(){int a=0;cin>>a;if(a%2==0){cout<<"a除2余數0,是偶數"<<endl;if(a==12){cout<<"a等于12,判斷正確"<<endl;}else{cout<<"a不等于12,判斷錯誤"<<endl;}}
}
以上代碼首先將輸入的值給a變量,隨后判斷a是否可以被2除斷,若除的斷則顯示"a除2余數0,是偶數",在判斷a是否是12,若是12則顯示判斷正確。
運行結果如下:
三、總結
- 了解條件判斷的使用方法
- 了解了if語句判斷多個條件使用else if
- 了解了輸入使用cin
- 了解什么是邏輯與、邏輯或并且用于多個條件判斷