C++中的判斷與循環

一.if判斷語句

1.程序中的判斷:

if (要執行的判斷,最后的返回值要是bool型的數據) {如果為真,要執行的代碼段;
}
#include"iostream" 
using namespace std;int main() {int ans;cin >> ans;if (ans > 1000) {cout << "ans大于1000" << endl;} 
}

二.if else語句

應用場景:

在前面我們所了解的if語句中只能對一種情況進行判斷,若滿足,則執行,那么,不滿足怎么辦呢?

回答就是if else語句

1.程序中的判斷:

#include"iostream" 
using namespace std;int main() {if (條件判斷語句) {若為真,則執行的代碼段; } else {若為假,則執行的代碼段; }
}

2.簡單舉例:

#include"iostream" 
using namespace std;int main() {int month_money;cin >> month_money;if (month_money > 50000) {cout << "高富帥" << endl;} else {cout << "高帥" << endl;}
}

三.else if語句

應用場景:在某些情況下,判斷條件不止一個,可能存在多個,那么這時候我們就需要用到else if語句了

1.程序中的判斷:

#include"iostream" 
using namespace std;int main() {if (條件判斷1) {若1為真,執行的代碼段; } else if (條件判斷2) {若2為真,執行的代碼段; } else if (條件判斷n) {若n為真,執行的代碼段; } else {上面所有的條件全都不滿足時執行的代碼段; }
}

2.舉例:

#include"iostream" 
using namespace std;int main() {int month_money;cin >> month_money;if (month_money < 10000) {cout << "小高富帥" << endl;} else if (month_money < 30000){cout << "高富帥" << endl;} else if (month_money < 50000) {cout << "大高富帥" << endl;} else {cout << "老高富帥" << endl;}
}

四.邏輯判斷語句的嵌套

1.應用場景:

在很多場景中,并不僅僅只是多個并列條件,還會有滿足前置條件才會二次判斷的多層判斷需求,我們要滿足這種判斷需求就需要用到嵌套判斷語句

2.程序中的嵌套判斷:

#include"iostream" 
using namespace std;int main() {if (條件1) {代碼段;if (滿足條件1后的條件2) {代碼段; } else {// 代表滿足條件一后不滿足條件2代碼段; }} else {// 不滿足條件1代碼段; }
}

3.舉例:

#include"iostream" 
using namespace std;int main() {int age;cout << "請輸入您的年齡:" << endl;cin >> age;if (age >= 18) {cout << "您在生理上已經成年了" << endl;int salary;cout << "請輸入您的每月工資" << endl;cin >> salary;if (salary > 8000) {cout << "您已經足夠養活自己,過上還不錯的日子了" << endl;} else {cout << "加油" << endl; }} else {cout << "小朋友好好學習哦" << endl;}
}

五.基于邏輯運算符完成復雜判斷

若有以下三種場景:

①:基于if else組合完成條件達成和未達成的代碼執行

②:基于else if完成多個并行條件的判斷

③:基于嵌套if完成多條件同時滿足的判斷

在場景不過于復雜的前提下,我們可以使用邏輯運算符快速完成上述需求

也就是&&(與),||(或),!(非)

1.&&

if (條件1 && 條件2) {只有條件1和2同時滿足才會執行代碼段;
}

2.||

if (條件1 || 條件2) {條件1或2只要滿足一個即可執行代碼段;
}

3.!

if (!條件) {只有當條件不成立才會執行代碼段;
}

六.switch控制語句

1.應用場景:

在程序中經常有許多場景需要用到多條件判斷,針對多條件判斷的場景,我們需要用到switch控制語句

2.程序中:

#include"iostream" 
using namespace std;int main() {switch (case) {case 1:代碼段;break;case 2:代碼段;break;...case n:代碼段;break;default:若沒有任何case符合,則執行這里的代碼段;  }
}

注意:

①:在switch語句中僅僅做值匹配(相等的判斷)

②:break語句可以中斷switch語句,否則就會繼續向下執行其他的case段,包括default段,直到執行完或者遇到break為止

3.舉例:

#include"iostream" 
using namespace std;int main() {int date;cout << "請輸入今天是周幾(數字1-7):";cin >> date;switch (date) {case 1:cout << "今天是周一" << endl;break;case 2:cout << "今天是周二" << endl;break;case 3:cout << "今天是周三" << endl;break;case 4:cout << "今天是周四" << endl;break;case 5:cout << "今天是周五" << endl;break;case 6:cout << "今天是周六" << endl;break;case 7:cout << "今天是周天" << endl;break;default:cout << "您的輸入有誤" << endl;break;}
}

七.while循環語句

在生活中我們普遍循環重復著一天又一天,在程序中也同樣有著循環,并且其還占著舉足輕重的作用

1.程序中的循環:

while (條件表達式) {循環體代碼;
}

在while循環中,只要滿足了while循環中的條件,那么就會一直執行while循環中的代碼

2.舉例:

#include"iostream" 
using namespace std;int main() {int count = 1;cout << "好習慣的養成需要21天" << endl;while (count <= 21) {cout << "堅持學習" << endl;count++;}
}

3.do while循環

do while循環只是while循環的一個變換形式,與while循環在功能上的不同點在于while循環只會在條件判斷成立時才執行循環體中的代碼,而do while循環會首先執行一次循環體中的代碼再判斷是否符合條件,是否進入while循環中

4.程序中的do while循環:

do {循環體;
} while (條件表達式)

5.while循環嵌套

嵌套的思想我們在之前就已經提到過,因此直接上一個簡單案例幫助大家理解吧

#include"iostream" 
using namespace std;// 輸出九九乘法表 
int main() {int i = 1;while (i <= 9) {int j = 1;while (j <= i) {cout << j << "*" << i << "=" << i * j << "\t";j++;}i++;cout << endl;}
}

八.for循環語句

除了while循環語句之外,C++還提供for循環語句完成循環

1.程序中的for循環語句:

#include"iostream" 
using namespace std;int main() {for (循環因子初始化語句; 條件判斷; 循環因子變化語句) {循環體; } 
}

2.while循環與for循環的區別:

while循環中僅有條件判斷,這是語法的要求,而循環因子是用戶自行提供的

for循環中包含條件判斷,循環因子初始化,循環因子變化,這些都是for循環語法中自帶的功能

3.簡單案例:

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 21; i++) {cout << "好好學習天天向上" << endl;}
}

4.for循環中的嵌套

同樣還是嵌套的概念,直接給出簡單的案例幫助大家理解

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 21; i++) {cout << "好好學習天天向上" << endl;for (int j = 1; j <= 3; j++) { // 這里作為循環因子的兩個變量名不能相同,你應該能想明白是為什么吧 cout << "每天好好學習的獎勵就是豐盛美味的一日三餐" << endl;}}
}

九.變量的作用域

1.前置知識:

在C++代碼中,變量并不是隨時隨地都可以訪問的,而是要看是否處于該變量的作用域中

2.怎么區分一個變量的作用域:

看變量定義在哪個大括號({})中,它被定義的大括號就是它的作用域(當然不包括它還沒被定義的時候所在的位置)

#include"iostream" 
using namespace std;int main() {// 上方不屬于temple的定義域,因為還沒被定義 int temple;// 在這之下的都是temple的作用域 for (int i = 1; i < 9; i++) {int ans;// ans的作用域僅限于每次它被for循環定義之后,在for循環中起作用 }// 這下面還屬于ans的定義域嗎?當然不是,因為ans只被局限于for循環中,根本出不來 
}

十.循環終端語句

1.前言:

無論是while循環還是for循環都是重復性的執行特定的操作,但是如果出現了某種情況,我想要跳過滿足某種條件的某次循環,或者一旦滿足了某種條件,我就中止這個循環,那么改怎么辦呢?

2.continue和break關鍵字

我們使用continue關鍵字跳過某一次循環,直接執行下一次

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) // 如果i等于3,那么跳過本次循環 continue;cout << i << endl;}
}

我們使用break關鍵字直接中止整個循環

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) // 如果i等于3,那么中止整個for循環 break;cout << i << endl;}
}

注意:無論是continue還是break,都是在執行到它們的位置之后才會進行跳過或者終止,那么在它們之前書寫的代碼是不受影響的

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 5; i++) {cout << "上方的代碼" << endl;  // 正常輸出了5次,不受continue的影響 if (i == 3) // 如果i等于3,那么跳過本次循環 continue;cout << i << endl;}
}
#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 5; i++) {cout << "上方的代碼" << endl; // 輸出了三次 if (i == 3) // 如果i等于3,那么中止整個for循環 break;cout << i << endl;}
}

十一.goto語句

1.goto語句的作用:

提供無條件跳轉的功能

2.標簽的概念:

我們定義一個標簽配合goto進行使用,一旦遇到goto語句,就跳轉到該標簽的位置開始按順序執行代碼

3.標簽的定義方式:

標簽名:

4.goto語句的使用語法:

標簽1:代碼;
標簽2:代碼;
...
標簽n:代碼;
goto 標簽5;

5.簡單案例:

#include"iostream" 
using namespace std;int main() {// 只要i小于等于10就會不斷跳回到loop的位置重新開始執行 int i = 1;loop:cout << i << " ";i++;if (i <= 10)goto loop;cout << endl;
}

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

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

相關文章

前端開發中生成網站的favicon.ico文件的軟件推薦及使用方法

日常網站開發中&#xff0c;我們經常需要生成網站的favicon.ico文件&#xff0c;今天我在這里來推薦幾個編輯.ico(也可將圖片格式轉化為.ico)圖片&#xff0c;而且免費的那軟件&#xff1a; GIMP&#xff1a;一個功能強大的開源圖像編輯軟件&#xff0c;支持多種文件格式&#…

淺談WebSocket-FLV

FLV是一種視頻數據封裝格式&#xff0c;這種封裝被標準通信協議HTTP-FLV和RTMP協議應用。 而WebSocket-FLV是一種非標的FLV封裝數據從后端發送到前端的一種方式。 在WebSocket的url請求中&#xff0c;包含了需要請求設備的視頻相關信息&#xff0c;在視頻數據到達時&#xff0c…

基于ADMM無窮范數檢測算法的MIMO通信系統信號檢測MATLAB仿真,對比ML,MMSE,ZF以及LAMA

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1 ADMM算法 4.2 最大似然ML檢測算法 4.3 最小均方誤差&#xff08;MMSE&#xff09;檢測算法 4.4 迫零&#xff08;ZF&#xff09;檢測算法 4.5 OCD_MMSE 檢測算法 4.6 LAMA檢測算法 …

cocos creator 筆記-路邊花草

版本&#xff1a;3.8.5 實現目標&#xff1a;給3d道路生成路邊景觀花草 在場景下創建一個節點&#xff0c;我這里種植兩種花草模型&#xff0c;蘭花和菊花&#xff0c;所以分別在節點下另創建兩個節點&#xff0c;為了靜態合批。 1.將花草模型分別拖入場景中&#xff0c;制作…

R語言——循環

參考資料&#xff1a;學習R 在R中有三種循環&#xff1a;repeat、while和for。雖然向量化意味著我們可能并不需要大量使用它們&#xff0c;但在需要重復執行代碼時&#xff0c;它們是非常有用的。 1、重復循環 R中最容易掌握的循環是repeat。它所做的事情就是反復地執行代碼&a…

springboot使用阿里限流框架-sentinel

當前項目源碼 控制臺下載 啟動bin中的看板服務&#xff1a;賬號密碼:sentinel/sentinel 官方文檔地址 項目引入依賴 <!-- sentinel注解支持 --> <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-annotation-aspectj<…

CSS3學習教程,從入門到精通,CSS3 元素的浮動與定位語法知識點及案例代碼(17)

CSS3 元素的浮動與定位語法知識點及案例代碼 一、CSS3 浮動&#xff08;float&#xff09; 知識點 1. **定義** &#xff1a;浮動使元素向左或向右移動&#xff0c;直到它的外邊緣碰到包含框或另一個浮動元素的邊框為止。浮動主要用于布局&#xff0c;如實現圖文繞排等效果。…

數據結構:漢諾塔問題的遞歸求解和分析

遞歸方法求解該類問題&#xff0c;是一種簡單的思維方法&#xff0c;通常比使用迭代方法更簡單。但是&#xff0c;遞歸方法也有劣勢。此處以典型的漢諾塔問題&#xff08;Tower of Hanoi&#xff09;為例給予說明。 漢諾塔是根據一個傳說形成的數學問題&#xff0c;最早是由法國…

3.27學習總結 算法題

自己用c語言做的&#xff0c;不盡如意 后面看了題解&#xff0c;用的是c&#xff0c;其中string 變量和字符串拼接感覺比c方便好多&#xff0c;可以用更少的代碼實現更好的效果&#xff0c;打算之后去學習c&#xff0c;用c寫算法。 遞歸&#xff0c;不斷輸入字符&#xff0c;…

vue 圖片放大到全局

背景&#xff1a; 在vue項目中&#xff0c;el-image組件圖片組件用于展示圖片&#xff0c;組件自帶的屬性preview-teleported&#xff0c;設置為true可以控制圖片放大到全局 實現效果&#xff1a; 核心代碼&#xff1a; //圖片地址&#xff1a;BASEUrl /file/ item.file //這…

【商城實戰(75)】數據分析指標體系搭建:從0到1的技術指南

【商城實戰】專欄重磅來襲&#xff01;這是一份專為開發者與電商從業者打造的超詳細指南。從項目基礎搭建&#xff0c;運用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用戶、商品、訂單等核心模塊開發&#xff0c;再到性能優化、安全加固、多端適配&#xf…

seatunnel配置mysql2hive

SeaTunnel安裝教程 # 執行流程 # 下載&#xff0c;解壓 # https://mirrors.aliyun.com/apache/seatunnel/2.3.8/?spma2c6h.25603864.0.0.2e2d3f665eBj1E # https://blog.csdn.net/taogumo/article/details/143608532 tar -zxvf apache-seatunnel-2.3.8-bin.tar.gz -C /opt/mo…

SSH項目負載均衡中的Session一致性解決方案?

SSH項目負載均衡中的Session一致性解決方案? 1. 粘性會話&#xff08;Session Sticky&#xff09;?2. Session復制&#xff08;集群同步&#xff09;?3. 集中式Session存儲?4. 客戶端存儲&#xff08;Cookie加密&#xff09;?方案選型建議?注意事項? 1. 粘性會話&#x…

MySQL 表連接(內連接與外連接)

&#x1f3dd;?專欄&#xff1a;Mysql_貓咪-9527的博客-CSDN博客 &#x1f305;主頁&#xff1a;貓咪-9527-CSDN博客 “欲窮千里目&#xff0c;更上一層樓。會當凌絕頂&#xff0c;一覽眾山小。” 目錄 1、表連接的核心概念 1.1 為什么需要表連接&#xff1f; 2、內連接&a…

解鎖Spring Boot異步編程:讓你的應用“飛“起來!

引言&#xff1a;從點餐說起 &#x1f354; 想象你在快餐店點餐&#xff1a; 同步模式&#xff1a;排隊等餐&#xff0c;隊伍越來越長&#xff08;就像卡死的服務器&#xff09;異步模式&#xff1a;拿號后去旁邊坐著等&#xff08;服務員喊號通知你&#xff09; 今天我們就…

做一個有天有地的css及html畫的旋轉陰陽魚

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>天地陰陽</title><style>/* 重置默認樣…

ngx_http_core_main_conf_t

定義在 src\http\ngx_http_core_module.h typedef struct {ngx_array_t servers; /* ngx_http_core_srv_conf_t */ngx_http_phase_engine_t phase_engine;ngx_hash_t headers_in_hash;ngx_hash_t variables_hash;…

計算機二級(C語言)考試高頻考點總匯(二)—— 控制流、函數、數組和指針

目錄 六、控制流 七、函數 八、數組和指針 六、控制流 76. if 語句可以&#xff08;嵌套&#xff09;&#xff0c; if 語句可以嵌套在另一個 if 語句內部&#xff0c;形成&#xff08;嵌套的條件判斷結構&#xff09;&#xff0c;用于處理更復雜的條件判斷邏輯。 77. els…

WebRTC協議全面教程:原理、應用與優化指南

一、WebRTC協議概述 **WebRTC&#xff08;Web Real-Time Communication&#xff09;**是一種開源的實時通信協議&#xff0c;支持瀏覽器和移動應用直接進行音頻、視頻及數據傳輸&#xff0c;無需插件或第三方軟件。其核心特性包括&#xff1a; P2P傳輸&#xff1a;點對點直連…

使用 WSL + Ubuntu + Go + GoLand(VSCode) 開發環境配置指南

1. 安裝和配置 WSL 與 Ubuntu 啟用 WSL 功能(以管理員身份運行 PowerShell): wsl --install 或手動啟用: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachi…