一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何才能熟練掌握關(guān)于for循環(huán)

C語(yǔ)言編程基礎(chǔ) ? 來(lái)源:博客 ? 作者:倫易俳嵌咕 ? 2021-08-14 09:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

好吧,也許你認(rèn)為我在寫(xiě)一篇如何使用for循環(huán)的文章,,,,首先,我想說(shuō)無(wú)論是學(xué)習(xí)C語(yǔ)言還是學(xué)習(xí)java的同學(xué)都能從此文中獲益,還有,你確定你會(huì)用for循環(huán)嗎?其實(shí)許多東西你只是在表面,要品才能有一種感覺(jué),有的時(shí)候,我喜歡咬文嚼字一下,所以你可以認(rèn)為我現(xiàn)在在程序中討論關(guān)于“用推還是用敲”的話題。

先來(lái)問(wèn)你一個(gè)問(wèn)題,一個(gè)簡(jiǎn)單的數(shù)學(xué)問(wèn)題,不過(guò)你盡量快點(diǎn)回答,區(qū)間[9,15]中有幾個(gè)整數(shù)?

多數(shù)想馬上表現(xiàn)自己聰明的同學(xué)可能會(huì)馬上回答6個(gè),但是是7個(gè),你會(huì)發(fā)現(xiàn)這種雙閉區(qū)間的元素會(huì)比你想象的多,就連[9,9]都有一個(gè)元素是嗎?而半開(kāi)半閉就不同了[0,10)你可以不假思索的用[m,n)中有n-m個(gè)元素,來(lái)回答這個(gè)答案,10個(gè)元素,你發(fā)現(xiàn)什么了沒(méi)?這。。有點(diǎn)像數(shù)組,恩恩,這個(gè)問(wèn)題就是我們?cè)诒疚暮竺鎸⒂懻摰哪闳绾尾拍苁炀毜氖褂眠@些多1少1的問(wèn)題。現(xiàn)在先開(kāi)始說(shuō)for循環(huán)

我常常把最簡(jiǎn)單的for循環(huán)稱(chēng)之為循環(huán)計(jì)數(shù)器:

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

你看,這里的i只是一個(gè)計(jì)數(shù)的作用,它在告訴cpu,去把我的這條語(yǔ)句執(zhí)行十次把!

你可能會(huì)說(shuō),這有什么?for都是這樣的呀!請(qǐng)你往下看

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

這個(gè)for就不同了,它把i做為一種產(chǎn)物,在循環(huán)中使用它,我把它稱(chēng)之為循環(huán)產(chǎn)生器,這個(gè)i就不僅僅是讓循環(huán)執(zhí)行十次的作用了,它在每次的循環(huán)中產(chǎn)生,循環(huán)體的語(yǔ)句中有自己的作用,所以當(dāng)你理解所謂的循環(huán)產(chǎn)生器,你就會(huì)很輕松的寫(xiě)出各種多層循環(huán)的程序了,比如崔哥曾出個(gè)這樣一個(gè)題:

請(qǐng)用循環(huán)語(yǔ)句打印一個(gè)空心菱形:

我將用一種清晰的思路來(lái)分析寫(xiě)這個(gè)程序,

嗯,我先寫(xiě)一個(gè)函數(shù),它提供的接口如下:

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

恩,很簡(jiǎn)單的一個(gè)函數(shù):

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(“

”);}

所以,用所謂的循環(huán)產(chǎn)生器,產(chǎn)生我們需要的參數(shù)傳遞給這個(gè)函數(shù)不就行了嗎?

下面,我們先做一些約定

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

開(kāi)玩笑了,,,我們繼續(xù):

首先,輸出空心菱形,這個(gè)行數(shù)一定是個(gè)奇數(shù),

所以我們用1到LOW來(lái)表示這LOW個(gè)位置,而且中間的那個(gè)位置就是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做為一個(gè)產(chǎn)生器,不但讓循環(huán)執(zhí)行LOW次(打印low行)同時(shí)也控制產(chǎn)生這j和k這兩個(gè)參數(shù)了,當(dāng)然我們?cè)谇逦览碇螅耆梢园堰@個(gè)函數(shù)嵌到循環(huán)中,看只用了兩個(gè)for,而不是某些同學(xué)的分段循環(huán),四個(gè)for。。。

繼續(xù)討論有關(guān)for的話題,現(xiàn)在我要通過(guò)說(shuō)明for的一些使用細(xì)節(jié),來(lái)向你展示,你用什么樣的語(yǔ)言決定你的編程思維,我問(wèn)你如果讓你訪問(wèn)數(shù)組a[10]的每個(gè)元素,你會(huì)寫(xiě)怎樣的代碼?

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

還是

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

我一直都是使用第二種,因?yàn)檫@可以很好的說(shuō)明半開(kāi)半閉區(qū)間的思想,而且,C數(shù)組本身就是從零開(kāi)始的,我們用10來(lái)表示它最后一個(gè)元素的下一個(gè)位置(因?yàn)樽詈笠粋€(gè)元素是a[9]),

其實(shí),不僅僅是數(shù)組,在許多語(yǔ)言的迭代器(包括c++標(biāo)準(zhǔn)庫(kù))中都會(huì)使用第一個(gè)元素表示頭,最后一個(gè)元素的下一個(gè)位置表示尾,半開(kāi)半閉區(qū)間的這種思想可以讓你不用陷入多1或是少1的問(wèn)題中,比如[n,n)是沒(méi)有元素的,[n,m)是有m-n個(gè)元素的。。

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

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

不用把”《”改成”》”了,而且。。。作為一個(gè)終止?fàn)顟B(tài),還有用(后面論述)

現(xiàn)在還記得開(kāi)頭的那個(gè)求妹子的列子嗎?

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

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

下面再看一個(gè)列子:

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

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

有幾個(gè)有趣的地方:

我把i的定義放在外面

這個(gè)for循環(huán)沒(méi)有循環(huán)體,看那個(gè)分號(hào)。。。。。。

不是計(jì)數(shù)器,不是產(chǎn)生器,我喜歡把這種for稱(chēng)之為循環(huán)搜捕器,它用來(lái)找一個(gè)元素

所以我把i定義在循環(huán)外,因?yàn)橹笪覀冞€要使用到i,而同時(shí)也與前面的那些for循環(huán)中把i定義到for里面形成了對(duì)比,因?yàn)橹暗淖饔茫也⒉幌氚阉淖饔糜蛲饬?,?shí)際上,在c++中鼓勵(lì)你這么使用for,不讓它外流,這種東西在vc6.0會(huì)出點(diǎn)問(wèn)題(因?yàn)樗皇菢?biāo)準(zhǔn)的c++),因?yàn)閕的作用域會(huì)外流,所以你就不能寫(xiě)for(int i;;)這樣的語(yǔ)句兩次,它會(huì)報(bào)錯(cuò)說(shuō)你重定義了。而在c語(yǔ)言中,之前是不支持for(int i;;)這種定義方式的,不過(guò)在c99的時(shí)候,它也支持了,并鼓勵(lì)你這樣寫(xiě)。

并且,通過(guò)這個(gè)搜捕器,它的條件是a[i]!=‘c’&&i!=N,所以循環(huán)終止時(shí),是a[i]==‘c’||i==N這就是我之前說(shuō)的終止條件,我們就可以在之后寫(xiě)這樣的語(yǔ)句;

if(i==N)//沒(méi)找到else//找到了。i 是它的下標(biāo)

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

以上就是今天的分享,小伙伴們可以點(diǎn)個(gè)贊支持一下喲~

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11066

    瀏覽量

    216624
  • 產(chǎn)生器
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    20223
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4378

    瀏覽量

    64611
  • for循環(huán)
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    2697

原文標(biāo)題:C語(yǔ)言編程筆記:關(guān)于 for循環(huán) 的那些不為人知的秘密!

文章出處:【微信號(hào):xx-cyy,微信公眾號(hào):C語(yǔ)言編程基礎(chǔ)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    小屏幕,大能量 —— 聚會(huì)這款工業(yè)觸摸屏助力傳統(tǒng)設(shè)備向智能化轉(zhuǎn)型

    設(shè)備注入新的活力,實(shí)現(xiàn)從 “制造” 到 “智造” 的華麗蛻變。 一、人機(jī)交互革新,簡(jiǎn)化操作流程 傳統(tǒng)設(shè)備往往依賴(lài)復(fù)雜的按鈕、旋鈕和指示燈進(jìn)行操作與狀態(tài)顯示,操作人員需要經(jīng)過(guò)長(zhǎng)時(shí)間培訓(xùn)才能熟練掌握,不僅效率低下,還容易出現(xiàn)
    的頭像 發(fā)表于 05-16 15:31 ?172次閱讀

    電機(jī)學(xué)教程

    電磁關(guān)系,熟練掌握各類(lèi)電機(jī)的運(yùn)行原理及其分析方法: (3)在以上分析的基礎(chǔ)上,掌握各種電機(jī)的工作特性、外特性、機(jī)械特性、調(diào)速特性和起動(dòng)特性等; (4)根據(jù)以上所掌握的各種運(yùn)行特性,熟知其運(yùn)用場(chǎng)合,分析其
    發(fā)表于 05-12 14:50

    自動(dòng)化設(shè)備里 M12 接頭五口的巧妙接法

    熟練掌握自動(dòng)化設(shè)備里M12接頭五口的巧妙接法,尤其是結(jié)合德索精密工業(yè)的優(yōu)質(zhì)產(chǎn)品與專(zhuān)業(yè)技術(shù),能夠極大地提升設(shè)備布線的精準(zhǔn)度與可靠性,為自動(dòng)化設(shè)備的穩(wěn)定、高效運(yùn)行筑牢根基,確保設(shè)備在復(fù)雜的工業(yè)環(huán)境中持續(xù)穩(wěn)定地發(fā)揮其卓越性能。
    的頭像 發(fā)表于 05-08 09:01 ?218次閱讀
    自動(dòng)化設(shè)備里 M12 接頭五口的巧妙接法

    別忽視!TNC 插座正確拆卸關(guān)乎設(shè)備壽命

    正確拆卸 TNC 插座,看似微不足道,實(shí)則對(duì)設(shè)備的穩(wěn)定運(yùn)行及使用壽命影響重大。無(wú)論是專(zhuān)業(yè)技術(shù)人員,還是普通使用者,都應(yīng)熟練掌握正確拆卸方法,避免因操作不當(dāng)對(duì)設(shè)備造成損害,進(jìn)而降低設(shè)備維護(hù)成本,延長(zhǎng)設(shè)備使用壽命,確保通信與電子設(shè)備高效運(yùn)轉(zhuǎn)。
    的頭像 發(fā)表于 03-28 08:57 ?265次閱讀
    別忽視!TNC 插座正確拆卸關(guān)乎設(shè)備壽命

    DIY 達(dá)人必看:BNC 連接器接線工具套裝精選及實(shí)用技巧全解析

    接結(jié)束后,及時(shí)使用吸錫器清理多余焊錫,防止因焊錫殘留造成短路等問(wèn)題,確保焊接質(zhì)量可靠。 擁有一套適配的 BNC 連接器接線工具套裝,并熟練掌握上述實(shí)用技巧,DIY 愛(ài)好者在進(jìn)行音視頻設(shè)備連接時(shí),便能游刃有余,顯著提升接線質(zhì)量,保障設(shè)備穩(wěn)定運(yùn)行,盡情享受 DIY 帶來(lái)的無(wú)限樂(lè)趣與成就感。
    的頭像 發(fā)表于 03-12 09:48 ?441次閱讀
    DIY 達(dá)人必看:BNC 連接器接線工具套裝精選及實(shí)用技巧全解析

    PID控制算法的C語(yǔ)言實(shí)現(xiàn):PID算法原理

    在工業(yè)應(yīng)用中 PID 及其衍生算法是應(yīng)用最廣泛的算法之一,是當(dāng)之無(wú)愧的萬(wàn)能算法,如果能夠熟練掌握 PID 算法的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,對(duì)于一般的研發(fā)人員來(lái)講,應(yīng)該是足夠應(yīng)對(duì)一般研發(fā)問(wèn)題了,而難能可貴
    發(fā)表于 02-26 15:24

    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:嵌套循環(huán)循環(huán)控制的底層原理

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

    可靠性溫度循環(huán)試驗(yàn)至少需要幾個(gè)循環(huán)?

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

    控制咖啡機(jī)水溫的關(guān)鍵在于NTC溫度傳感器

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

    《HarmonyOS第一課》煥新升級(jí),賦能開(kāi)發(fā)者快速掌握鴻蒙應(yīng)用開(kāi)發(fā)

    全局思維的人才,使其能夠獨(dú)立完成中大型應(yīng)用和元服務(wù)的開(kāi)發(fā)、架構(gòu)設(shè)計(jì)等復(fù)雜任務(wù)。涵蓋中大型應(yīng)用架構(gòu)設(shè)計(jì)、鴻蒙特性開(kāi)發(fā)、性能調(diào)優(yōu)等核心技能,要求學(xué)員熟練掌握HarmonyOS各子系統(tǒng)和API,具備大型
    發(fā)表于 01-02 14:24

    深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    在程序設(shè)計(jì)中,我們常常需要重復(fù)執(zhí)行某一段代碼。為了提高效率和簡(jiǎn)化代碼,循環(huán)語(yǔ)句應(yīng)運(yùn)而生。C語(yǔ)言作為一門(mén)經(jīng)典的編程語(yǔ)言,提供了多種循環(huán)控制結(jié)構(gòu),幫助程序員高效地實(shí)現(xiàn)重復(fù)操作。掌握循環(huán)語(yǔ)句
    的頭像 發(fā)表于 12-07 01:11 ?599次閱讀
    深入理解C語(yǔ)言:<b class='flag-5'>循環(huán)</b>語(yǔ)句的應(yīng)用與優(yōu)化技巧

    無(wú)刷電機(jī)方波驅(qū)動(dòng)原理分析

    通過(guò)前幾期芝識(shí)課堂的學(xué)習(xí),相信大家已經(jīng)熟練掌握了電機(jī)的各種基本情況和工作模式,大家也該躍躍欲試希望能進(jìn)入實(shí)戰(zhàn)動(dòng)手環(huán)節(jié)了,準(zhǔn)備好操作電機(jī)的所有前期準(zhǔn)備,讓我們一起讓無(wú)刷電機(jī)真正工作起來(lái)吧!
    的頭像 發(fā)表于 11-21 18:12 ?1973次閱讀
    無(wú)刷電機(jī)方波驅(qū)動(dòng)原理分析

    物聯(lián)網(wǎng)學(xué)習(xí)路線來(lái)啦!

    環(huán)境 STM32主流開(kāi)發(fā)方式 3.1.2單片機(jī)常見(jiàn)接口 熟練掌握GPIO、UART、SPI、I2C、ADC等接口,以及中斷、定時(shí)器、DMA等單片機(jī)基本模塊的使用,適度了解看門(mén)狗、低功耗控制。 3.1.3
    發(fā)表于 11-11 16:03

    基于FPGA實(shí)現(xiàn)數(shù)碼管顯示

    本文介紹數(shù)碼管顯示譯碼基本工作原理及Verilog HDL驅(qū)動(dòng)代碼編寫(xiě),進(jìn)一步熟練掌握FPGA入門(mén)基礎(chǔ)知識(shí)。
    的頭像 發(fā)表于 10-24 14:44 ?1766次閱讀
    基于FPGA實(shí)現(xiàn)數(shù)碼管顯示

    rnn是遞歸神經(jīng)網(wǎng)絡(luò)還是循環(huán)神經(jīng)網(wǎng)絡(luò)

    RNN(Recurrent Neural Network)是循環(huán)神經(jīng)網(wǎng)絡(luò),而非遞歸神經(jīng)網(wǎng)絡(luò)。循環(huán)神經(jīng)網(wǎng)絡(luò)是一種具有時(shí)間序列特性的神經(jīng)網(wǎng)絡(luò),能夠處理序列數(shù)據(jù),具有記憶功能。以下是關(guān)于循環(huán)
    的頭像 發(fā)表于 07-05 09:52 ?994次閱讀