色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何才能熟練掌握關于for循環

C語言編程基礎 ? 來源:博客 ? 作者:倫易俳嵌咕 ? 2021-08-14 09:47 ? 次閱讀

好吧,也許你認為我在寫一篇如何使用for循環的文章,,,,首先,我想說無論是學習C語言還是學習java的同學都能從此文中獲益,還有,你確定你會用for循環嗎?其實許多東西你只是在表面,要品才能有一種感覺,有的時候,我喜歡咬文嚼字一下,所以你可以認為我現在在程序中討論關于“用推還是用敲”的話題

先來問你一個問題,一個簡單的數學問題,不過你盡量快點回答,區間[9,15]中有幾個整數?

多數想馬上表現自己聰明的同學可能會馬上回答6個,但是是7個,你會發現這種雙閉區間的元素會比你想象的多,就連[9,9]都有一個元素是嗎?而半開半閉就不同了[0,10)你可以不假思索的用[m,n)中有n-m個元素,來回答這個答案,10個元素,你發現什么了沒?這。。有點像數組,恩恩,這個問題就是我們在本文后面將討論的你如何才能熟練的使用這些多1少1的問題。現在先開始說for循環

我常常把最簡單的for循環稱之為循環計數器:

for(inti =1;i《=10;i++)cout《《“求妹子”《

你看,這里的i只是一個計數的作用,它在告訴cpu,去把我的這條語句執行十次把!

你可能會說,這有什么?for都是這樣的呀!請你往下看

for(inti =1;i《=10;i++)cout《《“求”《

這個for就不同了,它把i做為一種產物,在循環中使用它,我把它稱之為循環產生器,這個i就不僅僅是讓循環執行十次的作用了,它在每次的循環中產生,循環體的語句中有自己的作用,所以當你理解所謂的循環產生器,你就會很輕松的寫出各種多層循環的程序了,比如崔哥曾出個這樣一個題:

請用循環語句打印一個空心菱形:

我將用一種清晰的思路來分析寫這個程序,

嗯,我先寫一個函數,它提供的接口如下:

void print(int n,int p,int q);//在一行輸出n個元素,除了在p和q出輸出*其它地方都輸出空格

恩,很簡單的一個函數:

void print(int n,int p,int q){ for(int i = 1;i《=n;i++) { if(i==p||i==q) printf(“*”); else printf(“ ”); } printf(“

”);}

void print(int n,int p,int q){ for(int i = 1;i《=n;i++) { if(i==p||i==q) printf(“*”); else printf(“ ”); } printf(“

”);}

所以,用所謂的循環產生器,產生我們需要的參數傳遞給這個函數不就行了嗎?

下面,我們先做一些約定

“你我約定,難過的往事不許提”。。。

開玩笑了,,,我們繼續:

首先,輸出空心菱形,這個行數一定是個奇數,

所以我們用1到LOW來表示這LOW個位置,而且中間的那個位置就是LOW/2+1

這樣我們的程序就是這樣:

#define LOW 13int j,k,n = LOW/2+1;//空心菱形的中間位置j=k=n;for(int i = 1;i《=LOW;i++){ print(LOW,j,k); if(i《n) j--,k++; else j++,k--;}

i做為一個產生器,不但讓循環執行LOW次(打印low行)同時也控制產生這j和k這兩個參數了,當然我們在清晰道理之后,完全可以把這個函數嵌到循環中,看只用了兩個for,而不是某些同學的分段循環,四個for。。。

繼續討論有關for的話題,現在我要通過說明for的一些使用細節,來向你展示,你用什么樣的語言決定你的編程思維,我問你如果讓你訪問數組a[10]的每個元素,你會寫怎樣的代碼?

for(int i = 0;i《=9;i++)

還是

for(int i = 0;i!=10;i++)

我一直都是使用第二種,因為這可以很好的說明半開半閉區間的思想,而且,C數組本身就是從零開始的,我們用10來表示它最后一個元素的下一個位置(因為最后一個元素是a[9]),

其實,不僅僅是數組,在許多語言的迭代器(包括c++標準庫)中都會使用第一個元素表示頭,最后一個元素的下一個位置表示尾,半開半閉區間的這種思想可以讓你不用陷入多1或是少1的問題中,比如[n,n)是沒有元素的,[n,m)是有m-n個元素的。。

至于為什么是i!=10,而不是i《10,那要是這樣的語句呢?

for(int i = 10;i!=0;i--)

不用把”《”改成”》”了,而且。。。作為一個終止狀態,還有用(后面論述)

現在還記得開頭的那個求妹子的列子嗎?

for(inti =1;i《=10;i++)cout《《“求”《

這里我就讓i從1到10,(我不可能求0個妹子吧?)所以,這種對循環i的選取,0或1,是很有細節思考的。

下面再看一個列子:

inti;for(i=0;a[i]!=‘c’&&i!=N;i++);

這段代碼的作用是在一個char數組中找到第一個是’c’的元素,并返回它的索引

有幾個有趣的地方:

我把i的定義放在外面

這個for循環沒有循環體,看那個分號。。。。。。

不是計數器,不是產生器,我喜歡把這種for稱之為循環搜捕器,它用來找一個元素

所以我把i定義在循環外,因為之后我們還要使用到i,而同時也與前面的那些for循環中把i定義到for里面形成了對比,因為之前的作用,我并不想把它的作用域外流,實際上,在c++中鼓勵你這么使用for,不讓它外流,這種東西在vc6.0會出點問題(因為它不是標準的c++),因為i的作用域會外流,所以你就不能寫for(int i;;)這樣的語句兩次,它會報錯說你重定義了。而在c語言中,之前是不支持for(int i;;)這種定義方式的,不過在c99的時候,它也支持了,并鼓勵你這樣寫。

并且,通過這個搜捕器,它的條件是a[i]!=‘c’&&i!=N,所以循環終止時,是a[i]==‘c’||i==N這就是我之前說的終止條件,我們就可以在之后寫這樣的語句;

if(i==N)//沒找到else//找到了。i 是它的下標

這就是為什么用’!=’而不是《的原因了,這可以很清楚的看清終止條件。

以上就是今天的分享,小伙伴們可以點個贊支持一下喲~

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10947

    瀏覽量

    213895
  • 產生器
    +關注

    關注

    0

    文章

    25

    瀏覽量

    20135
  • 函數
    +關注

    關注

    3

    文章

    4353

    瀏覽量

    63292
  • for循環
    +關注

    關注

    0

    文章

    61

    瀏覽量

    2579

原文標題:C語言編程筆記:關于 for循環 的那些不為人知的秘密!

文章出處:【微信號:xx-cyy,微信公眾號:C語言編程基礎】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PID控制算法的C語言實現:PID算法原理

    在工業應用中 PID 及其衍生算法是應用最廣泛的算法之一,是當之無愧的萬能算法,如果能夠熟練掌握 PID 算法的設計與實現過程,對于一般的研發人員來講,應該是足夠應對一般研發問題了,而難能可貴
    發表于 02-26 15:24

    技術干貨驛站 ▏深入理解C語言:嵌套循環循環控制的底層原理

    多重循環,還是控制循環的執行流程,掌握這些知識都將為你的編程之路打下堅實的基礎。嵌套循環在C語言中,循環語句可以嵌套使用,即在一個
    的頭像 發表于 02-21 18:26 ?141次閱讀
    技術干貨驛站  ▏深入理解C語言:嵌套<b class='flag-5'>循環</b>與<b class='flag-5'>循環</b>控制的底層原理

    可靠性溫度循環試驗至少需要幾個循環

    溫度循環作為自然環境的模擬,可以考核產品在不同環境條件下的適應能力,常用于產品在開發階段的型式試驗、元器件的篩選試驗。一、溫度循環測試介紹溫度循環試驗,也稱為熱循環試驗、高低溫
    的頭像 發表于 01-23 15:26 ?160次閱讀
    可靠性溫度<b class='flag-5'>循環</b>試驗至少需要幾個<b class='flag-5'>循環</b>?

    控制咖啡機水溫的關鍵在于NTC溫度傳感器

    對于熱愛咖啡的人來說,一杯完美的咖啡需要精心挑選優質的咖啡豆,熟練掌握烘焙技巧,以及恰到好處地控制水溫。在咖啡機中,NTC溫度傳感器扮演著關鍵的角色,確保咖啡水溫精準控制,讓我們享受到口感豐富、濃郁的咖啡體驗。
    的頭像 發表于 01-14 09:40 ?263次閱讀

    《HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發

    全局思維的人才,使其能夠獨立完成中大型應用和元服務的開發、架構設計等復雜任務。涵蓋中大型應用架構設計、鴻蒙特性開發、性能調優等核心技能,要求學員熟練掌握HarmonyOS各子系統和API,具備大型
    發表于 01-02 14:24

    高薪 mcu 觸控算法專家(觸控按鍵,不要觸控屏)

    觸摸原理,具有觸摸算法/硬件的成功設計開發和調測經驗(至少熟練掌握電容觸摸原理); 5、精通觸摸相關安規認證的測試規范; 6、具有觸摸算法大量產應用經驗,面向家電應用觸控算法經驗優先; 7、具備一定的團隊管理能力。
    發表于 12-27 14:12

    深入理解C語言:循環語句的應用與優化技巧

    在程序設計中,我們常常需要重復執行某一段代碼。為了提高效率和簡化代碼,循環語句應運而生。C語言作為一門經典的編程語言,提供了多種循環控制結構,幫助程序員高效地實現重復操作。掌握循環語句
    的頭像 發表于 12-07 01:11 ?332次閱讀
    深入理解C語言:<b class='flag-5'>循環</b>語句的應用與優化技巧

    無刷電機方波驅動原理分析

    通過前幾期芝識課堂的學習,相信大家已經熟練掌握了電機的各種基本情況和工作模式,大家也該躍躍欲試希望能進入實戰動手環節了,準備好操作電機的所有前期準備,讓我們一起讓無刷電機真正工作起來吧!
    的頭像 發表于 11-21 18:12 ?1392次閱讀
    無刷電機方波驅動原理分析

    物聯網學習路線來啦!

    環境 STM32主流開發方式 3.1.2單片機常見接口 熟練掌握GPIO、UART、SPI、I2C、ADC等接口,以及中斷、定時器、DMA等單片機基本模塊的使用,適度了解看門狗、低功耗控制。 3.1.3
    發表于 11-11 16:03

    基于FPGA實現數碼管顯示

    本文介紹數碼管顯示譯碼基本工作原理及Verilog HDL驅動代碼編寫,進一步熟練掌握FPGA入門基礎知識。
    的頭像 發表于 10-24 14:44 ?1236次閱讀
    基于FPGA實現數碼管顯示

    使用TINA時,想輸入一個外部激勵信號,怎么樣才能使波形連續循環輸出呢?

    在使用TINA時,想輸入一個外部激勵信號,用語句描述如下,怎么樣才能使波形連續循環輸出呢 REPEAT FOREVER 0 -24 3.33e-6 -24 3.33e-6 24 6.66e-6
    發表于 08-09 07:05

    rnn是遞歸神經網絡還是循環神經網絡

    RNN(Recurrent Neural Network)是循環神經網絡,而非遞歸神經網絡。循環神經網絡是一種具有時間序列特性的神經網絡,能夠處理序列數據,具有記憶功能。以下是關于循環
    的頭像 發表于 07-05 09:52 ?739次閱讀

    循環神經網絡的基本概念

    循環神經網絡(Recurrent Neural Network,簡稱RNN)是一種具有循環結構的神經網絡,其核心思想是將前一個時間步的輸出作為下一個時間步的輸入,從而實現對序列數據的建模。本文將從
    的頭像 發表于 07-04 14:31 ?930次閱讀

    承裝修試電力設施許可證所需施工機具設備條件承試類設備使用過程中需要注意事項

    學習,熟練掌握各種高壓試驗技能,嚴格遵守各種規章規程,提高自身安全意識,杜絕違規操作,這樣才能保證高壓試驗的安全,確保人身和設備的安全,使我廠的生產安全穩定長久的運
    的頭像 發表于 06-17 11:05 ?373次閱讀
    承裝修試電力設施許可證所需施工機具設備條件承試類設備使用過程中需要注意事項

    PLC三大量的計算(熟練三大量,玩轉PLC)

    PLC中無非就是三大量:開關量、模擬量、脈沖量。只要搞清楚三者之間的關系,你就能熟練掌握PLC了。? 6軸雙工位激光焊接示教系統 開關量的計算 1、 開關量也稱邏輯量,指僅有兩個取值,0或1
    的頭像 發表于 03-18 08:39 ?655次閱讀
    PLC三大量的計算(<b class='flag-5'>熟練</b>三大量,玩轉PLC)
    主站蜘蛛池模板: 国产日韩欧美另类 | 儿子好妈妈的HD3中字抢劫 | 神马电影院午夜神福利在线观看 | 国产精品人妻无码久久久奥特曼 | 午夜性色一区二区三区不卡视频 | 午夜理论电影在线观看亚洲 | 夜月视频直播免费观看 | zooskoo1videos人与狗 | 久久精品国产在热亚洲 | 亚洲欧美中文日韩视频 | 中文字幕高清在线观看 | 成人无码在线视频区 | 99热在线播放 | 欧美雌雄双性人交xxxx | 亚洲国产精品特色大片观看 | 蜜芽在线播放免费人成日韩视频 | 在线 国产 欧美 亚洲 天堂 | 我半夜摸妺妺的奶C了她软件 | 精品久久久久中文字幕 | 亚洲欧洲日产国产 最新 | 亚洲人成人77777在线播放 | 美女被强奷到抽搐的动态图 | 国产偷啪自怕网 | 久久九九青青国产精品 | 欧美人与动牲交XXXXBBBB免费 | 日韩精品欧美亚洲高清有无 | 国产高潮国产高潮久久久久久 | 色欲人妻无码AV精品一区二区 | 中文成人在线 | 十九岁在线观看免费完整版电影 | 45分钟做受片免费观看 | 日韩精品一区二区亚洲AV观看 | 良家人妻无码专区九色颜射 | 最近中文字幕高清中文字幕MV | 亚洲欧美日韩国产手机在线 | 午夜精品久久久久久久爽牛战 | 扒开美女下面粉嫩粉嫩冒白浆 | 国产综合在线视频 | 亚洲成人在线免费观看 | 国产日韩欧美综合久久 | 妈妈的朋友5在线观看免费完整版中文 |