《零基礎看得懂的C++入門教程 》——(4)條件判斷原來如此

一、學習目標

  1. 了解什么是條件判斷
  2. 了解多個條件判斷
  3. 了解輸入
  4. 了解什么是邏輯與、邏輯或

目錄

預備第一篇,使用軟件介紹在這一篇,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則顯示判斷正確。
運行結果如下:

三、總結

  1. 了解條件判斷的使用方法
  2. 了解了if語句判斷多個條件使用else if
  3. 了解了輸入使用cin
  4. 了解什么是邏輯與、邏輯或并且用于多個條件判斷

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287646.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287646.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287646.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django學習筆記(4)

為什么80%的碼農都做不了架構師&#xff1f;>>> 首先提一個問題&#xff1a;在Django中如何處理CRSF(Cross-site request forgery)? 先看一下CSRF原理。 其實就是惡意網站利用正常網站的cookie去非法請求。 ##Java處理方式## 一般做法需要后臺和前端配合采取策略去…

MySQL復制--slave設置讀取binlog的位置

change_master->global_init_info->Master_info::mi_init_info->Rpl_info_handler::init_info->Rpl_info_file::do_init_info ->mi->rli->rli_init_info()->初始化./relay-bin.000001,4如果relay-log.info不存在的話&#xff0c;否則讀取//初始化mas…

【遙感數字圖像處理】實驗:遙感專題地圖制作經典流程(Erdas版)

實驗目的:掌握計算機輔助下遙感專題地圖的制作。實驗平臺:ERDAS 9.1實驗要求:掌握專題地圖的編輯;制圖文件路徑的編輯;系列地圖編輯工具的使用。實驗步驟:1 專題地圖的編輯 1.1 準備專題制圖數據 (1) 在視窗菜單條中點擊 File,選擇Open (2) 點擊 Raster Layer,打開S…

.NET版OCR緊隨PP-OCRv3重磅發布

.net版OCR地址PaddleOCRSharp&#xff1a;https://gitee.com/raoyutian/paddle-ocrsharpPaddleOCRSharp是一個基于PaddleOCR的C代碼修改并封裝的.NET的工具類庫。包含文本識別、文本檢測、基于文本檢測結果的統計分析的表格識別功能&#xff0c;同時針對小圖識別不準的情況下&a…

mysql導出二進制日志_使用mysqlbinlog提取二進制日志

MySQL binlog日志記錄了MySQL數據庫從啟用日志以來所有對當前數據庫的變更。binlog日志屬于二進制文件&#xff0c;我們可以從binlog提取出來生成可閱讀的SQL語句來重建當前數據庫以及根據需要實現時點恢復或不完全恢復。本文主要描述了如果提取binlog日志&#xff0c;并給出相…

《零基礎看得懂的C++入門教程 》——(5) 容我套個娃 循環

一、學習目標 了解循環的使用方法 目錄 預備第一篇&#xff0c;使用軟件介紹在這一篇&#xff0c;C與C使用的軟件是一樣的&#xff0c;查看這篇即可&#xff1a;《軟件介紹》 想了解編譯原理和學習方法點這篇&#xff0c;學習方法和一些原理C與C都是相同的《脫離學習誤區》 …

Android之把app作為獨立的module導入其他項目遇到的坑

1 問題 把app作為獨立的module導入其他項目 2 步驟 1)在app的里面的build.gradle里面把 apply plugin: com.android.application 替換成如下 apply plugin: com.android.library 2)注視掉build.gradle文件里面的applicationId 3)app的AndroidManifest文件中MainActiv…

【ArcGIS風暴】ArcGIS解決數字化之前創建圖層時未定義坐標系而導致數據跑偏的問題

數字化時,第一步需要創建點線面圖層,創建圖層需要指定一個地理坐標系,但如果忽略了這一步,我們數字化的適量數據時沒有坐標系的,后果很嚴重,如果數字化工作只做了一點點,可以卷土重來;如果是大量工作的話,可以采取以下補救措施,建議收藏。 注: (1)如果底圖為無任…

Android兩個注意事項.深入了解Intent和IntentFilter(兩)

深入理解Intent和IntentFiler(二)轉載請表明出處&#xff1a;http://blog.csdn.net/u012637501(嵌入式_小J的天空) 在上一篇文章中&#xff0c;我們比較具體學習了"Intent"的相關知識&#xff0c;如今將學習怎樣設置Intent對象的這些屬性以及怎樣使用他們來啟動組件。…

Oracle常用sql語句(一)

Sql的分類DDL操作數據庫表列等表基本的操作主鍵索引視圖 常用數據類型字符串類型數字類型日期類型LOB類型LONG類型 數據轉換character datenumbercharacter通用函數條件表達式Sql的分類 DDL &#xff08;Data Definition Language&#xff09;&#xff1a;數據定義語言&#xf…

ASP.NET Web API 實現客戶端Basic(基本)認證 之簡單實現

優點是邏輯簡單明了、設置簡單。 缺點顯而易見&#xff0c;即使是BASE64后也是可見的明文&#xff0c;很容易被破解、非法利用&#xff0c;使用HTTPS是一個解決方案。 還有就是HTTP是無狀態的&#xff0c;同一客戶端每次都需要驗證。 實現&#xff1a; 客戶端在用戶輸入用戶名及…

WPF|分享一個登錄界面設計

分享一個登錄界面&#xff0c;先看效果圖&#xff1a;準備文中使用到了一些圖標&#xff1a;我們可以從 iconfont[1]免費下載&#xff1a;代碼簡單說明請隨手創建一個WPF項目&#xff08;.NET Framework、.NET 5\6\7皆可&#xff09;&#xff0c;使用tree /f命令看看最終的文件…

《零基礎看得懂的C++入門教程 》——(6)自己動手寫個函數

一、學習目標 了解C語言的自定義函數的使用方法了解C語言自定義函數的傳參了解C語言自定義函數的返回值 目錄 預備第一篇&#xff0c;使用軟件介紹在這一篇&#xff0c;C與C使用的軟件是一樣的&#xff0c;查看這篇即可&#xff1a;《軟件介紹》 想了解編譯原理和學習方法點…

k8s mysql數據同步_K8s——MySQL實現數據持久化

1、搭建nfs存儲[rootdocker-k8s01 ~]# yum -y install nfs-utils[rootdocker-k8s01 ~]# mkdir /nfsdata/mysql -p[rootdocker-k8s01 ~]# cat /etc/exports/nfsdata *(rw,sync,no_root_squash)[rootdocker-k8s01 ~]# systemctl restart nfs-server[rootdocker-k8s01 ~]# systemc…

【計算機圖形學】實驗:C#語言采用GDI+定義筆刷并填充圖形完整實驗操作流程

一、實驗目的: 熟練掌握在.net環境下對筆刷的定義,并可用定義好的筆刷填充多邊形。 二、實驗準備: 學習在.net環境下GDI+所提供的5種筆刷類型,掌握定義筆刷的方法和填充圖形的函數,如FillRectange ( )、FillEllipse ( )等。 三、實驗內容: 在.net環境中設計一個窗體…

Android之提示Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed

1 問題 02-28 22:44:33.031 7379 7379 E AndroidRuntime: java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed 02-28 22:44:33.031 7379 7379 E AndroidRuntime: at android.graphics.Canvas.checkValidClipOp(C…

使用Java API的5個技巧

本文介紹了一些關于Java API安全和性能方面的簡單易用的技巧&#xff0c;其中包括保證API Key安全和開發Web Service方面中在框架方面選擇的一些建議。 程序員都喜歡使用API&#xff01;例如為app應用構建API或作為微服務架構體系的一部分。當然&#xff0c;使用API的前提是能讓…

管道模式 pipe

先放一個圖&#xff0c;預則立嘛 PipelinePattern.rar 這里是 不完整的碼轉載于:https://www.cnblogs.com/ganmk--jy/p/5525897.html

《零基礎看得懂的C++入門教程 》——(7)小數組玩起來

一、學習目標 了解數組的使用方法了解一維數組的使用方法了解一維數組與循環的使用方法 目錄 預備第一篇&#xff0c;使用軟件介紹在這一篇&#xff0c;C與C使用的軟件是一樣的&#xff0c;查看這篇即可&#xff1a;《軟件介紹》 想了解編譯原理和學習方法點這篇&#xff0c…

SSO 方案演進

1背景介紹 隨著業務與技術的發展&#xff0c;現今比以往任何時候都更需要單點登錄 SSO 身份驗證。現在幾乎每個網站都需要某種形式的身份驗證才能訪問其功能和內容。隨著網站和服務數量的增加&#xff0c;集中登錄系統已成為一種必要。在本文中&#xff0c;我們將討論下 …