P6 C++控制流語句(continue, break, return)

前言

今天我們講的是控制流語句,本期內容是上期課程的延續。

控制流語句一般與循環語句一起工作,它們讓我們可以更好的控制這些循環的實際運行。

我們有三個主要的控制流語句可以使用,continue?、break?和?return,它們有不同的功能。

  1. continue 只能在循環中使用,它表示?進入這個循環的下一個送代(前提是:如果還有下一次迭代,如果沒有,循環就會結束)。
  2. break 主要用于循環中,它也會出現在 switch 語句中,break 意思是要跳出循環,也就是終止循環。
  3. return 應該是最有 ''力量'' 的一個語句,因為 return 會完全 ''脫離'' 你的函數,如果你在一個函數中碰到了一個 return 關鍵字,程序運行會退出這個函數,當然函數可能需要一個返回值,如果只有 return 本身,你只能返回 return 本身,return 本身只適用于 void 函數,如果你的函數需要返回值的話,它需要提供一個返回值。

我們來看一個實際的例子。下面是一段我們之前使用過的程序。

#include <iostream>int main(int argc, const char** argv) 
{for(int i = 0; i <5; i++){   std::cout << i<< ":\tHello, World!\n";}return 0;
}

我們那代碼進行編譯執行,毫無疑問,會打印五次hello world

continue

我們的第一個控制流語句,是continue。

continue 將跳到 for 循環的下一個迭代,如果我按照下面的方式修改,它將不會影響 for 循環的行為,因為這個位置已經是 for 循環的結尾了,前面該執行的代碼也執行完了。

當程序運行到第八行時,不管怎樣,這一行會繼續到下一次送代,所以這根本不會改變它的行為。

然而,如果我再這樣做,你就會看到明顯的不一樣了。因為如果 i 對 2 取余等于 0 ,就會執行 continue,所以從第一個開始,每兩個迭代會跳過一個。

我們可以記錄實際的 i 變量的值來查看當前的索引值是怎么變化的。

當 i 為 0 時,它不會運行,因為 0模2 的結果是 0,結果是 true,程序會執行 continue。當 i 是1 時,我們會輸出記錄,當等于 2 時,不會輸出,當等于 3 時,我們會輸出記錄,當等于 4 時,不會輸出,程序到不了 5,因為如果等于 5,我們就不會執行 for 循環了,因為這個 for 循環的條件就是 i 小于 5。

?

break

如果我們把上面代碼中的 continue 替換成 break,你可以看到情況是完全不一樣的。

#include <iostream>int main(int argc, const char** argv) 
{for(int i = 0; i <5; i++){   if(i%2 == 0)break;;std::cout << i<< ":\tHello, World!\n";}return 0;
}

程序什么都沒有輸出

我們做一下修改。

第一次迭代的時候,i 為 0, i+1 模 2 的結果是 1,所以 if 評估表達式的結果為 false,程序不會到達 break 語句。

第二次迭代的時候,i 為1, i+1 模 2 的結果是 0,所以 if 評估表達式的結果為 true,程序執行 break 語句,循環結束了。

這就是 break,它可以讓程序完全跳出 for 循環,當然這些控制流語句可以用在所有的循環語句中,所以它們在 for 循環、while 循環、do-while 循環中的運作方式是一樣的。

好了,最后一個是 return。

return

當前主函數是一個需要返回 int 的函數(第三·行有關鍵字 int ),所以我們不能只是寫 return,我們需要寫 return XXX。

我們編譯試一下

程序報錯,你可以看到程序申明必須返回一個值。

?

關于 return 語句,基本上就是這些了,需要注意的是,它不是必須在循環中使用,這點與 continue 和 break 不同。當然,如果你的函數要一個返回值,記得在 return 后面給它一個對應的值來返回。

后話

整體上說,這些控制語句就是控制你的代碼如何?流動?的。控制語句結合循環語句和 if 語句一起完成程序運行,這些就是編程的基本邏輯,你可以使用這些控制語句語句決定下一行要執行什么代碼,這些是可以改變你的程序行為的工具。

之后的系列中,我們會一直使用所有這些控制語句,并向你們展示它們在哪里使用以及怎么用。還可能向您展示如果不使用它們如何編寫代碼。

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

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

相關文章

Python 訂閱 image_transport 壓縮后的深度圖 compressedDepth

image_transport 是ros的一個圖像處理工具,可以很方便地進行圖像數據的壓縮,可惜它目前并不支持python 當你如下安裝了image_transport及其plugin后 sudo apt install ros-foxy-image-transport*運行 ros2 run image_transport list_transports可看到如下內容 Declared tr…

打印樓梯,同時在樓梯上方打印兩個笑臉。

#include<stdio.h> int main() { int i,j; printf("\1\1\n"); /*輸出兩個笑臉*/ for(i1;i<11;i) { for(j1;j<i;j) printf("%c%c",219,219); printf("\n"); } return 0; }

【C++】POCO學習總結(五):功能介紹

【C】郭老二博文之&#xff1a;C目錄 1、POCO 簡介 github&#xff1a;https://github.com/pocoproject/poco 官網&#xff1a;https://pocoproject.org/index.html POCO第一個版本于 2005 年 2 月發布 POCO完全免費&#xff1a;POCO C 庫根據 Boost 軟件許可證獲得許可。非…

QMI8658A(6軸)-EVB 評估板-使用說明書

QMI8658A6<6軸>-EVB 評估板-使用說明書 0.前言 1.硬件準備 1.1 I2C 接口 1.2 USART 接口 1.3 引腳序號功能定義 2.程序運行 0.前言 【相關博文】 【QMI8658 - 姿態傳感器學習筆記 - Ⅰ】 【QMI8658 - 姿態傳感器學習筆記 - Ⅱ】 【QMI8658 - 姿態傳感器學習…

基于單片機的光伏發電并網系統設計(論文+源碼)

1.系統設計 片作為主控制器。由于太陽能板本身的能量輸出受到負載影響&#xff0c;因此需要在太陽能板后面加入一級DC/DC電路&#xff0c;來實現最大功率跟蹤&#xff0c;以提高整個系統的效率。接著&#xff0c;由于光伏逆變器需要產生220V的交流電給居民使用&#xff0c;因此…

[MySQL] MySQL 表的增刪查改

本篇文章對mysql表的增刪查改進行了詳細的舉例說明解釋。對表的增刪查改簡稱CRUD : Create(創建), Retrieve(讀取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;刪除&#xff09;。其中重點是對查詢select語句進行了詳細解釋&#xff0c;并且通過多個實際例子來幫助…

香港科技大學廣州|先進材料學域博士招生宣講會—華中科技大學大學專場!!!(暨全額獎學金政策)

“跨學科融合創新&#xff0c;引領新興與未來行業的突破與發展——先進材料學域” 世界一流的新型可持續材料創新研究 夯實的先進材料領域國際學術影響力 教授親臨現場&#xff0c;面對面答疑解惑助攻申請&#xff01; 一經錄取&#xff0c;享全額獎學金1.5萬/月&#xff01; …

【性能優化】JVM調優與寫出JVM友好高效的代碼

&#x1f4eb;作者簡介&#xff1a;小明java問道之路&#xff0c;2022年度博客之星全國TOP3&#xff0c;專注于后端、中間件、計算機底層、架構設計演進與穩定性建設優化&#xff0c;文章內容兼具廣度、深度、大廠技術方案&#xff0c;對待技術喜歡推理加驗證&#xff0c;就職于…

面試:Kafka相關問題

文章目錄 簡單介紹kafkakafka應用場景為什么需要zookeeperZookeeper 對于 Kafka 的作用是什么&#xff1f;kafka高效的原因kafka的特點kafka的核心組成Kafka中的Topic和Partition有什么關系&#xff1f;Kafka的消費消息是如何傳遞的&#xff1f;Kafka 的多副本機制了解嗎&#…

STM32:基本定時器原理和定時程序

一、初識定時器TIM 定時器就是計數器&#xff0c;定時器的作用就是設置一個時間&#xff0c;然后時間到后就會通過中斷等方式通知STM32執行某些程序。定時器除了可以實現普通的定時功能&#xff0c;還可以實現捕獲脈沖寬度&#xff0c;計算PWM占空比&#xff0c;輸出PWM波形&am…

Vue3 + Vite + TSX + vue3-ace-editor 踩坑

前言 由于 ace-editor 官網并沒有提供各個前端框架Vue&#xff0c;React&#xff0c;Angular的直接使用的適配版本&#xff0c; 所以本次使用的vue3-ace-editor 是個人開源者維護的版本&#xff0c;原生是支持 SFC 模版用的&#xff0c;由于我這里習慣使用 JSX 或 TSX的方式&a…

【03】ES6:解構賦值

一、數組的解構賦值 ES6 允許按照一定模式&#xff0c;從數組和對象中提取值&#xff0c;對變量進行賦值&#xff0c;這被稱為解構&#xff08;Destructuring&#xff09;。 1、基本使用 遵循 “模式匹配” &#xff0c;索引值相同的完成賦值 // 為變量賦值&#xff0c;只能…

Centos7 Python環境和yum修復

1、刪除現有殘余包 [rootlocalhost ]# rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps[rootlocalhost ]# rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps[rootlocalhost ]# whereis python |xargs rm -frv[rootlocalhost ]# whereis python ##驗證清除&…

mybatis注解方式動態標簽時有特殊符號,出現元素內容必須由格式正確的字符數據或標記組成

原始代碼demo Select("SELECT COUNT(1) FROM AAAA WHERE name #{nage} AND age< 4") public Integer sumXxxxx(String nage, String age);現需求改為nage可以為空&#xff0c;因此使用了動態拼接 Select("<script> SELECT COUNT(1) FROM AAAA WHERE …

SWT/Jface(2): 表格的編輯

前言 上節說到, 創建和渲染表格需要如下幾個步驟: 接收源數據數組(也可以是單個對象或者其他集合類型): TableViewer.setInput(Object)渲染接收的數據 渲染表頭: TableViewer.setLabelProvider(IBaseLabelProvider)渲染內容: TableViewer.setContentProvider(IContentProvide…

java.lang.IllegalArgumentException: java.net.UnknownHostException: xxx

windows系統下連接hdfs進行操作時&#xff0c;上來就出現java.lang.IllegalArgumentException: java.net.UnknownHostException: xxx java.lang.IllegalArgumentException: java.net.UnknownHostException: liujianat org.apache.hadoop.security.SecurityUtil.buildTokenServ…

Keil Vision5—新建工程project

注意&#xff1a;創建的工程目錄必須是純英文目錄 目錄 1.開始配置 2.為該路徑下新建個文件夾 3.選擇器件 4.工程配置 4.右擊魔術棒&#xff0c;設置參數 ?編輯 &#xff08;1&#xff09;target配置 &#xff08;2&#xff09;output配置 &#xff08;3&#xff09;c…

字符串結尾空格比較相關參數BLANK_PAD_MODE(DM8:達夢數據庫)

DM8:達夢數據庫 字符串結尾空格比較相關參數BLANK_PAD_MODE 環境介紹1 BLANK_PAD_MODE01.1 初始化數據庫1.2 創建測試表 T0 2 BLANK_PAD_MODE12.1 初始化數據庫2.2 創建測試表 T1 3 BLANK_PAD_MODE只對字段varchar類型生效3.1 BLANK_PAD_MODE 對char 類型對比無效3.2 在兩個數據…

計算機中了halo勒索病毒怎么清除,halo勒索病毒解密數據恢復

科技的進步加快了企業發展的步伐&#xff0c;網絡技術的不斷應用為企業的生產運營提供了極大幫助&#xff0c;但隨之而來的網絡安全威脅也不斷增加&#xff0c;近期&#xff0c;云天數據恢復中心接到很多企業的求助&#xff0c;企業的計算機服務器遭到了halo勒索病毒攻擊&#…

Jmeter快速入門

文章目錄 1.安裝Jmeter1.1.下載1.2.解壓1.3.運行 2.快速入門2.1.設置中文語言2.2.基本用法 1.安裝Jmeter Jmeter依賴于JDK&#xff0c;所以必須確保當前計算機上已經安裝了JDK&#xff0c;并且配置了環境變量。 1.1.下載 可以Apache Jmeter官網下載&#xff0c;地址&#xf…