【C語言】天哪!break居然有這麼多用法

2021-03-02 草根青年

/*關於公眾號轉型*/

各位小夥伴大家好!最近在對個人公眾號的轉型做了許多思考,與許多很好的小夥伴交流了很久,初步決定未來該公眾號的定位主要是在課內分享程式語言、office、PS、PR、Xmind等學習乾貨,在課外則主要分享玩轉吉他、唱跳Rap、塗鴉與藝術、數碼產品評測、烘焙點心等課餘休閒乾貨,盡最大限度激發各位小夥伴對學習興趣和對生活的熱愛。當然了,除了對技能類興趣類的分享外,我們還會不定期更新一些與讀者心與心交流的文字,例如夜聊、夜聽、最終達到的效果是:一起進步,一起勉勵,在代碼的世界中茁壯成長!在現實世界中活出精彩!

本期分享的乾貨主要是c語言的break知識點。在分享break知識點之前,我想說最近對c語言的學習有了一些新思考,實際上也是對學好每一門程式語言的個人拙見。

每當我們信心滿滿準備在鍵盤上行雲流水敲代碼時,我們總會發現,理想很美好,現實很骨感,真到要動手敲的時候,真的好難。其實,「真的好難」主要體現在以下幾個方面:

1. 基本不了解我們面前所呈現的編程實際問題的算法

2. 基本不清楚如何搭建該實際問題的流程結構

3. 基本不熟知每條代碼語句的語法知識點,以及該語句在本行代碼中所起的作用,所擁有的功能!

從以上三點我們大概明白了,學好c語言,首先我們要攻破的三大難題:算法、流程、語法

首先我們要明白,當面對每一個待解決的編程實際問題,算法實際問題時,總是發揮著不可替代的作用。 

本質上來講我們總覺得「真的好難」,實際上,就是算法的問題。我們從一開始接觸到編程的實際問題,它的算法已經讓我們無從下手,一臉蒙圈了。而想要解決算法帶來的煩惱,首先我們要在大腦中構建解決該算法的數學模型,也就是通過運用數學知識來解決實際問題!

舉個最簡單的例子,小學時我們每次考試在解應用題的過程,實際上就是在不斷探求每一道實際問題的算法!

因此,學好c語言,基本的數學邏輯演繹推理能力、數學思辨能力、數學中的程序框圖流程判斷能力最好盡最大限度開發,並不斷培養數學模型構建能力!

其次,每句代碼的語法,也在編程中發揮著重要作用!

如果拿數學中的充分必要條件知識來類比的話,語法完全可以充當編寫代碼過程中的必要條件!當我們跨過了最艱難得一步——構建數學模型,得出解決該編程實際問題得算法後,那接下來要解決的,就是錯綜複雜的編程語法!

實際上,各類編程語法知識點是息息相關的,但有同也有異,僅憑目前的知識面,學好c語言的流程控制、指針等相關語法知識點,對於未來學習java、資料庫、前端都有莫大的幫助!

最後,當解決了以上兩大塊最難啃的骨頭後,我們接下來要做的,我們能做的,就是嘗試著在每一行代碼後邊加上注釋。注釋的內容可以是分析該語句的功能和作用,這樣做最重要有兩點:

①有利於不斷加深鞏固我們對代碼的認知,其實在嘗試注釋的過程中,本質上就在考查我們對該代碼的理解掌握程度!儘管過了很長一段時間後,我們再回過頭翻看自己所寫過的代碼,也能一目了然!

②對於提升該串代碼的質量也有很大幫助。一串規範、高質量的代碼,必不可少的即是為它添上科學準確的注釋!

總的來說,不管我們是想掌握算法、語法還是流程控制的思維能力,最好的建議,也只能是希望每一位熱愛的編程的小夥伴多多練習。中國人有句成語,孰能生巧,是十分準確的!只有在不斷敲代碼的過程中,發現問題,反覆推敲,運用所學的語法知識點解決問題,再結合準確的算法,才可能有機會在未來的代碼世界中自由飛翔!

接下來介紹本期乾貨知識點——C語言中break用法!

1.break第一個用法:

相信小夥伴們對break最常用的功能並不陌生,那就是當break與switch()語句和case語句搭配使用時,起到終止switch語句的作用。

很顯然,如果把switch()語句比作電梯,那麼break就相當於每一層樓的按鍵,一旦按下,電梯就會到達指定的樓層後停下!我們可以舉個例子來證明一下我們前面的說法——break在switch()語句中充當「電梯樓層按扭鍵「的具體作用:

接下來我們可以來一個對比舉例,當把這個break按扭鍵去除,那即便你按了指定樓層的按鍵也是白按,此時,在執行完case1後,程序只會毫無控制地向下執行,即電梯只會向上面的樓層升,直到當break又出現時,程序才會停下來,即程序才會結束運行!

2.再來看看break的第二個用法

break不能直接與if語句搭配,只有當if屬於循環內部的子句,且if語句外層有for語句嵌套時,break才能與if搭配使用!

解析:3>2對於計算機來說是等於1,也即是真,所以當i既等於0,if語句又是真的情況下,break語句會被執行,雖然它是if內部子句,但break終止的是嵌套在if外面的for循環!

那如果沒有循環語句嵌套在if外面,只有單獨的if語句和break語句搭配使用,編譯器到底會提示什麼?答案當然是爆紅叉,error!如圖!

3.Break第三個用法:

在多層for循環中,終止最近的for循環!


假設終止的是距離break較遠的for循環,那麼輸出結果自然是什麼都沒有,(如上圖),但恰恰相反,如果控制臺顯示的是第三個「Good!」,說明,break終止的不是最外層的for循環,而是距離最近的for循環!(在這裡穿插一下,可能許多小夥伴疑問for循環的嵌套這個知識點,這個問題我打算在下期的推文中結合幾個例子來具體講解,望見諒!)

4.break第四個用法:

與上一用法類似,在多層switch循環嵌套中,代碼中的第一個break永遠只能終止距離最近的switch語句。

我們來看這串代碼,為什麼說第一個break終止的是第二串switch語句,假設第一個break終止的是距離較遠的switch語句,那麼輸出結果很顯然是a=1,b=0,執行順序為:switch(1)→case 1→switch(0)→case 0→a++ →第1個break→printf語句。但結果並不是這樣,(如上圖),當第1個break終止的是距離最近的switch(y)語句,那麼結果可從圖中得知a=1,b=100 程序執行順序為:switch(1)→case 1→switch(0) →case 0→a++ →第1個break→b=100→第2個break →printf語句。


break如果是用於循環語句,則它的作用是用來終止循環!

break如果用於單個switch語句,則是用於終止單個switch;如果用於多個switch嵌套語句中,且該switch嵌套語句中有多個break,則第一個break永遠終止的是距離最近的switch語句!

break不能直接作為if的子句,除非if是嵌套在循環語句中!當if語句嵌套在for循環語句中,且break是if的子句,break終止的是外部for循環!

好啦,通過提出對如何學好C語言的個人拙見和break用法的講解,小夥伴們是否對進一步學習C語言充滿信心了呀。如果此時屏幕前的你學習C語言的熱情和興趣再一次被我們激發,十分歡迎小夥伴們到後臺回復「C語言」,領取C語言學習資料,並掃碼加入我們的「C語言小白交流群」一起煥發光彩啊!無論你是小白,還是大佬,我們都希望與你共同進步,共同成長!

掃描二維碼 | 關注我們

微信號 : NewYouthKai

後臺回復 : C語言

 文案編輯:小 楷

  排版編輯:小 楷

  特別鳴謝:北 辰

相關焦點

  • R語言中的next語句和break語句的具體用法
    我們知道在像C語言,C#語言,Java語言中可以分別使用continue語句和break語句來實現,那麼在R語言中也是這樣的嗎?回答是不完全是這樣的。在R語言中要終止某一次循環要使用next來實現,要終止整個循環就可以使用break語句來實現。
  • C語言switch語句用法總結
    請看下文C語言中選擇結構分為if語句和switch語句兩種,兩種語句均可以依據條件不同而選擇執行不同的語句塊,但switch語句更多地應用於多分支結構。本文將總結switch語句基本用法及使用技巧,希望能給大家提供參考。1、 switch語句基本用法C語言中,switch語句是一種多分支選擇語句,在實際應用中,要在多種情況中選擇一種情況,執行某一部分語句。
  • 掌握C語言的必知要點
    溫故而知新,可以為師矣,初學一門語言的時候,我們會躍躍欲試,並沒有真正深入的理解,經過一段時間的實踐,會產生困惑,學而不思則殆,這時回過頭來看書,會有意想不到的收穫,會豁然開朗,會讓你在以後的實踐中更加運用自如
  • break/continue跳出語句的用法筆記
    break不僅可以用在switch語句中,還可以用在死循環中跳出循環,當然continue也可以用在死循環中。下邊記錄了break/continue跳出語句在php中的一些用法,供大家參考。php中break跳出語句break關鍵字一般是用來跳出當前的循環(包括while、do...while、for、foreach循環)或跳出switch條件語句。當在使用循環語句時,如果不知道循環的次數,就知道當滿足或不滿足某條件是跳出循環,這時就可以使用break跳出語句。
  • C語言中的enum(枚舉)用法
    ;      enum egg test;         test = c;        if (test==c)       {          cout <<"枚舉變量判斷:test枚舉對應的枚舉元素是c" << endl;       }
  • C語言:break和continue都是跳出循環,有啥區別?
    c 語言中循環語句有 3 種:while();        do     while();         for;且 3 種循環都可以使用 continue 和 break 語句對於continue語句,執行到該語句時,會跳過本次迭代的剩餘部分,並開始下一輪迭代;但是若 continue 語句在嵌套循環的內部
  • C語言中,break和continue都是跳出循環,有啥區別?
    c 語言中循環語句有 3 種:while();        do     while();         for;且 3 種循環都可以使用 continue 和 break 語句對於continue語句,執行到該語句時,會跳過本次迭代的剩餘部分,並開始下一輪迭代;但是若 continue 語句在嵌套循環的內部
  • C語言strcmp和strcpy的用法
    一、c語言strcmp()用法原型:int strcmp(const char *s1, const char *s2);頭文件:#include
  • 10個經典的C語言小程序
    今天給大家分享10個比較基礎的C語言的小程序,希望給C語言初學者帶來一定幫助。
  • 10 個經典的 C 語言小程序
    今天給大家分享10個比較基礎的C語言的小程序,希望給C語言初學者帶來一定幫助。程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。
  • Python中break語句用法詳解!
    這篇文章主要介紹了詳解Python中break語句的用法,是Python入門的呼出知識,需要的朋友可以參考下 在Python中的break
  • c語言經典小程序匯總大全
    網上有很多的人說編程有多麼多麼無聊,其實:不要管別人怎麼說,別人說什麼,做你自己喜歡做的事就好。堅持下來,你會發現編程的樂趣的。當然,如果你覺得學習程式語言很痛苦,堅持了一段時間後無果,南無果斷放棄未必不是一個好的選擇。
  • 英語語法:短語break the ice,break therecord的用法​
    <動詞+名詞+(介詞)>短語385.break the ice打破僵局用法:break the ice字面意思是「將冰打破」,引申意為「打破僵局,打破沉默」,通常指消除隔閡,開始做某事。同義短語是break the deadlock。 例句:What you should do now is to break the ice.你現在應該做的就是打破僵局。
  • 程式設計師C語言快速上手——環境準備篇(一)
    前言大多數人在Windows上使用Visual Studio IDE作為C語言學習環境,實際上我認為這是非常錯誤的做法。每個人都有各自的理由,比如學校是這麼教的,要保持和課堂同步,又比如要做畢設等等,還有貌似合理的更高級說法,比如有人喜歡說工具是其次的,只要學好了C語言語法就行,其他任何環境也能快速上手。對不起,如果是針對一門跨平臺的高級語言,這個說法成立,但是對於C語言,不成立。
  • c語言——基本語法
    c語言由Dennis MacAlistair Ritchie創始,是普適性最強的一種電腦程式編輯語言,它不僅可以發揮出高級程式語言的功用,還具有彙編語言的優點。本期將簡潔地介紹c的基本語法。二、scanf輸入格式:scanf(格式控制,地址表列);例如:scanf("a=%f", &a);注意:輸入的內容要與引號內的內容一致輸入輸出中的「%+格式符」控制了輸入輸出的格式,兩者的格式符相似:d,表示有符號的十進位整數u,表示無符號的十進位整數
  • 《C語言入門指南》上篇
    殺毒軟體,防火牆, 驅動, 伺服器程序)3、 C 語言是一個有結構化程序設計、具有變量作用域(variable scope)以及遞歸功能的過程式語言4、C 語言傳遞參數可以是= 'a'; printf("請輸入一個字符(a,b,c,d)"); scanf("%c", &c1); //switch //表達式:任何有值都可以看成是一個表達式 switch(c1) { case 'a' : //'a' => 97 printf("今天星期一, 猴子穿新衣"); break;
  • 【C/C+】10個經典的C語言小程序,小白必看!
    1、題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少? 程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。
  • c語言五個經典程序
    #13; c語言五個經典程序
  • break及其構成短語的用法匯總
    break及其構成短語的用法匯總一 break的用法1.break vt./vi.2.break n.1)破,破裂,破隙a break in the clouds.7)break up分裂,結束, 解散The crowd started to break up when the night fell.天快黑時人群開始散開了。
  • 二級C語言知識點大盤點
    1010 45概念常考到的:1、編譯預處理不是C語言的一部分,不再運行時間。C語言編譯的程序稱為源程序,它以ASCII數值存放在文本文件中。2、每個C語言程序中main函數是有且只有一個。3、在函數中不可以再定義函數,函數可以相互調用。4、函數是一定要有輸出的,他可以沒有輸入。