循環結構中 break、continue、return 和exit() 的區別

循環結構中 break、continue、return 和exit() 的區別


文章目錄

  • 循環結構中 break、continue、return 和exit() 的區別
  • 一、break語句
  • 二、continue語句
  • 三、return 語句
  • 四、exit() 函數



說明:本文內容參考牟海軍 著《C語言進階: 重點、難點與疑點解析》,鳴謝

一、break語句

break 主要結合 switch 語句和循環結構,主要有以下特點:
(1) 在循環結構內部執行了 break 語句,就退出該層循環, 執行下一條語句。
(2) 在多重嵌套循環中執行 break 語句,只退出其所在循環層, 外層循環不受影響,繼續循環執行。
(3) 如循環結構里有 switch 語句, switch 語句中執行 break 語句時, 僅退出 switch 語句,不會退出外面的循環結構。
在這里插入圖片描述

二、continue語句

continue 語句較特殊的, 在循環結構主要有以下特點:
(1)它不會退出循環, 而是只結束本次循環體的執行, 所以使用 continue 時要注意。
(2) for 循環中, 首先執行表達式 1( 注意表達式 1 在整個循環中僅執行一次), 接著執行表達式 2, 如果滿足條件, 那么執行循環體, 如果在循環體中執行了 continue 語句, 那么就跳轉到表達式 3 處執行, 接下進行下一次循環, 執行表達式 2, 看是否滿足條件 ;
(3)在 while循環執行了continue 語句, 就直接跳轉到表達式處, 開始下一次的循環判斷 ;
(4)在 do while 循環體執行 continue 語句, 就跳轉到表達式處進行下一次的循環判斷,
在這里插入圖片描述

三、return 語句

return 語句主要用在函數或循環結構中,主要有以下特點:
(1)在程序中遇到 return 語句, 那么代碼就立刻退出該函數的執行,不會執行return下面的語句, 然后返回到函數的調用處,
(2)如果是 main() 函數, 那么結束整個程序的運行。
(3)如果在函數內部使用while或do while循環語句,在循環語句內部使用return語句,也會退出函數,
在這里插入圖片描述

四、exit() 函數

exit()實質為一個函數,表示執行返回,與 return 語句既有聯系又有區別;
區別:
(1)執行 exit() 函數意味著進程結束。
(2)調用 exit() 函數將會結束當前進程, 同時刪除子進程所占用的內存空間, 把返回信息傳給父程。 (3)當 exit() 中的參數為 0 時, 表示正常退出, 其他返回值表示非正常退出, 而 return 僅表示調用堆棧的返回, 其作用是返回函數值, 并且退出當前執行的函數體, 返回到函數的調用處,
(3)總結起來就是無論在函數中還是循環中調用exit()函數,都是終止程序運行

看個例子:

#include <stdio.h>
#include <stdlib.h>int func()
{int n = 1;printf("exit 退出函數\n");while(1){if(9==n){exit(n);}n++;}return 0;
}int main(void)
{int ret;printf(" *********\n");ret = func();printf("func 函數返回值 ret = %d\n",ret);return 0;
}

執行結果:
? ? ? ? ? ? ? ? ? ********* ?????????
exit 退出函數

結論:函數退出之后沒有執行main函數最后一條語句,符合上述特性

聯系:
(1) 在main() 函數中, return n 和 exit(n) 是等價

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

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

相關文章

HTML程序大全(1):簡易計算器

HTML代碼&#xff0c;主要創建了幾個按鈕。 <div class"container"><div class"output" id"output">0</div><button class"button" onclick"clearOutput()" id"clear">C</button>…

C#調用win10系統自帶軟鍵盤的方法

上次做了個筆記是關于調用windows系統自帶的觸摸鍵盤的方法&#xff1a;C#調用Windows系統自帶觸摸鍵盤的方法_c# 虛擬鍵盤-CSDN博客 除了調用觸摸鍵盤&#xff0c;我們也可以通過調用win10的自帶軟鍵盤作為輸入途徑。 方法很簡單。 1、添加using System.Diagnostics引用。 …

選自《洛谷深入淺出進階篇》——歐拉函數+歐拉定理+擴展歐拉定理

歐拉函數&#xff1a; 歐拉函數定義&#xff1a; 1~n中與n互質的數的個數。 比如 歐拉函數是積性函數&#xff1a;&#xff08;也就是&#xff09;當 n與m互質的時候&#xff1a; 由算術基本定理&#xff0c;我們可以設n&#xff0c;那么我們只要計算出的取值就能求出的取…

5組10個共50個音頻可視化效果PR音樂視頻制作模板

我們常常看到的圖形跟著音樂跳動&#xff0c;非常有節奏感&#xff0c;那這個是怎么做到的呢&#xff1f;5組10個共50個音頻可視化效果PR音樂視頻制作模板滿足你的制作需求。 PR音樂模板|10個音頻可視化視頻制作模板05 https://prmuban.com/36704.html 10個音頻可視化視頻制作…

linux下查看文件當下的所有文件的大小和查找大文件

要查詢一個文件夾下面所有文件的總大小&#xff0c;您可以使用 du 命令配合一些參數。如果您只關心總大小&#xff0c;而不是各個子文件夾或文件的大小&#xff0c;可以使用以下命令&#xff1a; du -sh /path/to/your/directory在這個命令中&#xff1a; du 是磁盤使用情況的…

設計師福利!免費實用的7款Figma插件,讓你的工作事半功倍!

如今&#xff0c;Figma已經成為主流的原型和數字設計軟件之一&#xff0c;許多UI設計師和設計團隊開始選擇使用Figma。隨著Figma的快速更新和迭代&#xff0c;Figma插件庫變得越來越豐富。如果使用得當&#xff0c;將有助于提高您的設計效率。本文將介紹7個工作中非常實用的Fig…

echarts詞云圖echarts-wordcloud使用方法

1、echarts5.0以下的版本使用 echarts-wordcloud 1.0 的詞云 1. 安裝 wordCloud 1.0 依賴包npm install echarts-wordcloud12. man.js 注入import echarts-wordcloud 2、echarts5.0及以上的下載 echarts-wordcloud 2.0 版本 注意&#xff1a;npm install echarts-wordcloud …

微軟發布Orca2,“調教式”教會小規模大語言模型如何推理!

我們都知道在大多數情況下&#xff0c;語言模型的體量和其推理能力之間存在著正相關的關系&#xff1a;模型越大&#xff0c;其處理復雜任務的能力往往越強。 然而&#xff0c;這并不意味著小型模型就永遠無法展現出色的推理性能。最近&#xff0c;奶茶發現了微軟的Orca2公開了…

自動化操作腳本

文章目錄 vbsopenCV pyautogui vbs SSH連接并執行指令操作 Dim WshShell Set WshShellWScript.CreateObject("WScript.Shell") WshShell.Run "cmd.exe" WScript.Sleep 1000 WshShell.SendKeys "ssh xcmg10.27.40.103" WshShell.SendKeys &qu…

xxl-job詳解

目錄 1、xxl-job介紹1.1 xxl-job的原理1.1.1 執行器的注冊和發現1.1.2 調度中心調用執行器 1.2 quartz和xxl-job對比 2、快速入門2.1 下載并啟動2.2 在調度中心新增定時任務2.3 任務運行模式(BEAN、GLUE)2.4 xxl-job的總結 3、后端專屬技術群 1、xxl-job介紹 ? xxl-job是一個…

Python源碼30:海龜畫圖turtle畫紫色的小熊

turtle模塊是一個Python的標準庫之一&#xff0c;它提供了一個基于Turtle graphics的繪圖庫。Turtle graphics是一種流行的繪圖方式&#xff0c;它通過控制一個小海龜在屏幕上移動來繪制圖形。 turtle模塊可以讓您輕松地創建和控制海龜圖形&#xff0c;從而幫助您學習Python編…

Qt12.8

使用手動連接&#xff0c;將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中&#xff0c;在自定義的槽函數中調用關閉函數 將登錄按鈕使用qt5版本的連接到自定義的槽函數中&#xff0c;在槽函數中判斷ui界面上輸入的賬號是否為"admin"&#xff0c;密碼是否為…

lv11 嵌入式開發 中斷控制器14

目錄 1 中斷控制器 ?編輯 2 Exynos4412下的中斷控制器 2.1 概述 2.2 特征 ?編輯 2.3 中斷狀態 2.4 中斷類型 2.5 中斷控制器GIC中斷表 3 中斷控制器寄存器詳解 3.1 ICDDCR&#xff08;Interrupt Controller Distributor Control Register&#xff09; 3.2 ICDISER…

當你還在糾結用什么技術時,這位獨立開發者用PHP和JavaScript實現財務自由了

大家好&#xff0c;我是風箏&#xff0c;微信搜「古時的風箏」&#xff0c;更多干貨 一個個人產品賣了5400萬&#xff0c;這大概就是最成功的獨立開發者了吧 這位獨立開發者是 levelsio&#xff0c;他的真名是 Pieter Levels&#xff0c;是一位荷蘭的獨立開發者。看看人家的工…

WPF DataGrid 動態增加列

方式一&#xff1a;通過DataGrid 數據源即DataTable&#xff0c;在DataTable里面動態增加了列之后&#xff0c;重新構造每一行數據&#xff0c;設置DataGrid.ItemsSource null; 然后再重新設置ItemsSource到DataTable public partial class MainWindow : Window{public MainWi…

【Java基礎系列】Cron表達式入門

&#x1f49d;&#x1f49d;&#x1f49d;歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

優秀案例 | 元宇宙雙語財經科技主播“舒望”主持首屆粵港澳大灣區元宇宙國際傳播論壇

12月6日&#xff0c;由南方財經全媒體集團指導、大灣區元宇宙國際傳播實驗室(GBA MIC Lab&#xff09;主辦、南財國際傳播中心和21世紀經濟報道共同承辦&#xff0c;以“多元共創開放共享”為主題的首屆粵港澳大灣區元宇宙國際傳播論壇在廣州隆重開幕。 “立足灣區&#xff0c;…

Kubernetes - 為什么 K8S 在容器里不能調用自己?

問題描述 最近遇到一個神奇的現象&#xff0c;在 K8S 的 POD 容器中&#xff0c;比如 pod name&#xff1a;mini-appnamespace&#xff1a;devport&#xff1a;5050 那么&#xff0c;是無法在 mini-app 容器里執行以下命令&#xff0c;如果執行&#xff0c;會一直卡在這條命…

一文詳解Java單元測試Junit

文章目錄 概述、Junit框架快速入門單元測試概述main方法測試的問題junit單元測試框架優點&#xff1a;使用步驟&#xff1a; 使用案例包結構 Junit框架的常見注解測試 概述、Junit框架快速入門 單元測試概述 就是針對最小的功能單元&#xff08;方法&#xff09;&#xff0c;…

ROS rosbag

在ROS中的rosbag是一個命令行工具&#xff0c;主要用于記錄、回放和分析rostopic中的數據。它可以將指定rostopic中的數據記錄到.bag后綴的數據包中&#xff0c;以便于進行離線分析和處理。 在ROS系統中&#xff0c;rosbag可以通過命令行工具或ROS節點來使用。 通過rosbag命令…