/*關於公眾號轉型*/
各位小夥伴大家好!最近在對個人公眾號的轉型做了許多思考,與許多很好的小夥伴交流了很久,初步決定未來該公眾號的定位主要是在課內分享程式語言、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語言
文案編輯:小 楷
排版編輯:小 楷
特別鳴謝:北 辰