最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言循環(huán)結(jié)構(gòu)深入刨析

 更新時(shí)間:2022年08月18日 11:29:57   作者:Zoroxs  
C語(yǔ)言條件控制語(yǔ)句選擇結(jié)構(gòu),是屬于計(jì)算機(jī)的語(yǔ)言編輯,有在C語(yǔ)言條件控制中的語(yǔ)句選擇結(jié)構(gòu)的存在,即是C語(yǔ)言條件控制語(yǔ)句選擇結(jié)構(gòu),循環(huán)控制語(yǔ)句是一個(gè)基于C語(yǔ)言的編程語(yǔ)句,該語(yǔ)句主要有while循環(huán)語(yǔ)句、do-while循環(huán)語(yǔ)句和for循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)

總述

生活中不止處處是選擇,還時(shí)常面臨著重復(fù)做某事,比如呢,我們?nèi)諒?fù)一日的學(xué)習(xí)、敲代碼、

C語(yǔ)言中提供了 —while循環(huán)—for循環(huán)—do-while循環(huán)來(lái)表達(dá)循環(huán)

接下來(lái),對(duì)三種循環(huán)進(jìn)行分別介紹

while循環(huán)

while循環(huán)的流程圖大致就是這樣子

語(yǔ)法結(jié)構(gòu)

while( expression )   //判斷表達(dá)式是否成立,成立就執(zhí)行循環(huán)體,不成立則不進(jìn)入
循環(huán)體;

接下來(lái)我們使用一下while循環(huán),打印1-10的數(shù)字

#include <stdio.h>
int main(){
    int i = 1;
    while(i < 11)
        printf("%d ",i++);
    return 0;
}

這便是while最簡(jiǎn)單的用法,接下來(lái)看一下while中的break和continue

while循環(huán)中break和continue

break

看到break大家肯定不陌生,選擇結(jié)構(gòu)中的switch-case就要搭配著break使用哦

#include <stdio.h>
int main(){
    int i = 1;
    while(i < 11)
    {
        if( 5 == i)
            break;
        printf("%d ",i++);
    }
    return 0;
}

可以看出,當(dāng)i=5的時(shí)候,直接跳出了整個(gè)循環(huán)不再執(zhí)行

break是直接跳出循環(huán),也是直接跳出switch-case

continue

在英語(yǔ)中,continue是繼續(xù)的意思 ,在循環(huán)中,表示跳過(guò)這次循環(huán)進(jìn)行下一次循環(huán)

#include <stdio.h>
int main() {
    int i = 1;
    while (i < 11)
    {
        if (5 == i)
            continue; // 把break換成continue試一下
        printf("%d ", i++);
    }
    return 0;
}

大家可以猜一下,可想而知,大家可能會(huì)認(rèn)為結(jié)果是 1 2 3 4 6 7 8 9 10 跳過(guò)5,我們來(lái)分析一下

光標(biāo)一直在閃爍,死循環(huán),那怎么樣才能達(dá)到跳過(guò)5的效果呢,

核心問(wèn)題在于**這樣i的值沒(méi)辦法變化,那我們把i放在continue前面來(lái)試試**

#include <stdio.h>
int main() {
    int i = 0;
    while (i < 11)
    {
        i++;
        if (5 == i)
            continue;
        printf("%d ", i);
    }
    return 0;
}

這樣continue就不會(huì)跳過(guò)循環(huán)因子 -i 的變化,所以不會(huì)死循環(huán),來(lái)看結(jié)果

成功跳過(guò)了5,大家在while循環(huán)中使用continue時(shí)一定要注意循環(huán)因子的問(wèn)題

continue 在while循環(huán)中的作用就是:

  • 本次循環(huán)中continue后邊的代碼不會(huì)再執(zhí)行而是直接跳轉(zhuǎn)到while語(yǔ)句的判斷部分。
  • 進(jìn)行下一次循環(huán)的入口判斷。

for循環(huán)

語(yǔ)法結(jié)構(gòu)

for( 表達(dá)式1 ; 表達(dá)式2 ; 表達(dá)式3)

循環(huán)體;

  • 表達(dá)式1為**初始化部分,用于初始化循環(huán)變量的**。
  • 表達(dá)式2為_(kāi)條件判斷部分_,用于**判斷循環(huán)時(shí)候終止**。
  • 表達(dá)式3為_(kāi)調(diào)整部分_,用于**_循環(huán)條件的調(diào)整 _**。

for循環(huán)中break和continue

break

for循環(huán)中break與while循環(huán)中break完全相同,表示跳出循環(huán)

#include <stdio.h>
int main() {
	int i = 0;
	for (i = 1; i < 10; i++) {
		if (5 == i)
			break;
		printf("%d ", i);
	}
	return 0;
}

break基本沒(méi)啥區(qū)別,就是跳出循環(huán)

continue

for循環(huán)中continue跳出的依然是此次循環(huán),但是并不會(huì)跳過(guò)表達(dá)式3

#include <stdio.h>
int main() {
	int i = 0;
	for (i = 1; i < 10; i++) {
		if (5 == i)
			continue;
		printf("%d ", i);
	}
	return 0;
}

依然是跳過(guò)5,continue不會(huì)跳過(guò)表達(dá)式3,意味著i++可以執(zhí)行,不會(huì)造成死循環(huán)

當(dāng)然,一個(gè)人想寫(xiě)bug誰(shuí)也攔不住他

比如:

for循環(huán)中省略表達(dá)式的問(wèn)題

for循環(huán)中有3個(gè)表達(dá)式,都可以省略,但是分號(hào)一個(gè)不能少

int main(){
    int i = 0;
    //可以寫(xiě)成這樣
    for (i=0;i<10;)
        ;
    //還可以這樣
    for(i = 0;;)
        ;
    //甚至是這樣
    for(;;);  //三分號(hào)一個(gè)也不能少
}

for(;??; 這樣的代碼,如果循環(huán)體中沒(méi)有break,基本就是妥妥死循環(huán),并不建議大家這樣使用

for循環(huán)嵌套

當(dāng)出現(xiàn)兩個(gè)for循環(huán)的時(shí)候,需要考慮循環(huán)控制的問(wèn)題,行列,內(nèi)外循環(huán)都代表什么?大家需要想清楚

寫(xiě)一個(gè)九九乘法表

#include <stdio.h>
int main() {
	int i = 0;
	int j = 0;
	for (i = 1; i < 10; i++) {  //控制行
		for (j = 1; j <= i; j++) {
			printf("%d * %d = %d  ", j, i, i * j); //控制列
		}
		printf("\n");
	}
	return 0;
}

一般情況下,內(nèi)層循環(huán)因子的控制條件都和外層循環(huán)因子有關(guān)系

下面給大家?guī)讉€(gè)for循環(huán)的注意事項(xiàng)

  • 不可在for 循環(huán)體內(nèi)修改循環(huán)變量,防止 for 循環(huán)失去控制。
  • 建議for語(yǔ)句的循環(huán)控制變量的取值采用“前閉后開(kāi)區(qū)間”寫(xiě)法
#include <stdio.h>
int main(){
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};//數(shù)組下標(biāo)從0到9
    int i = 0;
    for(;i <=9;i++)  //前閉后閉
        printf("%d ",arr[i]);    
    for(;i < 10;i++)//前閉后開(kāi)
        printf("%d ",arr[i]);
    return 0;
}

前閉后開(kāi)區(qū)間的寫(xiě)法,可能使數(shù)字有了某種含義,比如例子中的10,剛好是打印元素的個(gè)數(shù),也是數(shù)組的長(zhǎng)度

給大家補(bǔ)充一個(gè)小知識(shí)

警惕for循環(huán)后邊直接跟分號(hào)的題,學(xué)校愛(ài)出這玩意,懂得都懂

do-while循環(huán)

do-while循環(huán)與其他兩種循環(huán)有很大不同,而也是使用頻率最小的循環(huán)

do
    循環(huán)體
while(判斷條件);

do-while循環(huán)最大的特點(diǎn)就是無(wú)論如何,循環(huán)體一定會(huì)執(zhí)行一次

只有在對(duì)應(yīng)場(chǎng)景中,才應(yīng)該使用do-while循環(huán)

do-while循環(huán)中,break以及continue的用法與while循環(huán)中一樣,本文不在贅述。

goto語(yǔ)句

對(duì)于goto語(yǔ)句,是一種跳轉(zhuǎn),其實(shí)沒(méi)必要說(shuō),因?yàn)槟苡盟鉀Q的用循環(huán)都能解決

簡(jiǎn)單介紹一下,但是并不推薦大家使用

#include <stdio.h>
int main()
{
    printf("hehe\n");
    goto flag;
    printf("haha\n");
flag:
    printf("heihei\n");
    return 0;
}

goto 會(huì)直接跳轉(zhuǎn)到flag標(biāo)記處,跳過(guò)打印haha

這只是goto語(yǔ)句的語(yǔ)法

goto語(yǔ)句真正使用在多層循環(huán)嵌套中,跳出循環(huán),使用break達(dá)不到,只能跳出一次,這些后續(xù)碰到再說(shuō)

總結(jié)

  • for循環(huán)對(duì)于初始化、條件、循環(huán)因子的控制都在一起
  • do-while循環(huán)的循環(huán)體至少執(zhí)行一次
  • goto不推薦大家使用

各種循環(huán)各有千秋,大家要根據(jù)對(duì)應(yīng)的場(chǎng)景,選擇對(duì)應(yīng)的循環(huán),達(dá)到需求

本文只是對(duì)循環(huán)語(yǔ)法進(jìn)行了介紹,對(duì)于循環(huán),大家要勤加練習(xí), 多思考

到此這篇關(guān)于C語(yǔ)言循環(huán)結(jié)構(gòu)深入刨析的文章就介紹到這了,更多相關(guān)C語(yǔ)言循環(huán)結(jié)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c++如何在主函數(shù)文件中調(diào)用其他函數(shù)文件

    c++如何在主函數(shù)文件中調(diào)用其他函數(shù)文件

    這篇文章主要介紹了c++如何在主函數(shù)文件中調(diào)用其他函數(shù)文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲代碼

    C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲代碼

    大家好,本篇文章主要講的是C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲代碼,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • 淺析C和C++函數(shù)的相互引用

    淺析C和C++函數(shù)的相互引用

    C++是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,為了支持函數(shù)的重載,C++對(duì)全局函數(shù)的處理方式與C有明顯的不同
    2013-10-10
  • C語(yǔ)言多功能動(dòng)態(tài)通訊錄實(shí)現(xiàn)示例

    C語(yǔ)言多功能動(dòng)態(tài)通訊錄實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了C語(yǔ)言多功能動(dòng)態(tài)通訊錄實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Qt帶參數(shù)的信號(hào)和槽函數(shù)舉例詳解

    Qt帶參數(shù)的信號(hào)和槽函數(shù)舉例詳解

    信號(hào)槽的設(shè)計(jì)旨在實(shí)現(xiàn)控件和處理邏輯的解耦合,但在實(shí)際開(kāi)發(fā)中,一對(duì)一的關(guān)系更為常見(jiàn),這篇文章主要介紹了Qt帶參數(shù)的信號(hào)和槽函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2025-03-03
  • 詳談浮點(diǎn)精度(float、double)運(yùn)算不精確的原因

    詳談浮點(diǎn)精度(float、double)運(yùn)算不精確的原因

    這篇文章主要介紹了詳談浮點(diǎn)精度(float、double)運(yùn)算不精確的原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • C++?中的類(lèi)型詳細(xì)

    C++?中的類(lèi)型詳細(xì)

    這篇文章主要介紹了C++?中的類(lèi)型,C++的類(lèi)型很復(fù)雜,往往一個(gè)類(lèi)型匹配錯(cuò)誤就會(huì)導(dǎo)致程序報(bào)錯(cuò),本篇主要講解一些常用類(lèi)型的概念以及細(xì)節(jié),需要的朋友可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • 淺析C++中的動(dòng)態(tài)內(nèi)存分配

    淺析C++中的動(dòng)態(tài)內(nèi)存分配

    這篇文章主要為大家詳細(xì)介紹了C++中動(dòng)態(tài)內(nèi)存分配的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 餐館點(diǎn)菜系統(tǒng)C語(yǔ)言源代碼

    餐館點(diǎn)菜系統(tǒng)C語(yǔ)言源代碼

    這篇文章主要為大家詳細(xì)介紹了餐館點(diǎn)菜系統(tǒng)C語(yǔ)言源代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C++超詳細(xì)講解貪心策略的設(shè)計(jì)及解決會(huì)場(chǎng)安排問(wèn)題

    C++超詳細(xì)講解貪心策略的設(shè)計(jì)及解決會(huì)場(chǎng)安排問(wèn)題

    為了更好的應(yīng)對(duì)《算法設(shè)計(jì)與分析》這門(mén)課程,我把書(shū)上以及老師講過(guò)的案例都詳細(xì)的做一個(gè)重現(xiàn)及解剖,讓你熟記每一個(gè)潛在的考點(diǎn),希望能給大家?guī)椭?/div> 2022-05-05

最新評(píng)論

吕梁市| 阆中市| 纳雍县| 临夏市| 苍溪县| 微博| 临澧县| 绥江县| 宾阳县| 崇阳县| 桦南县| 惠州市| 海兴县| 大安市| 扎鲁特旗| 湘阴县| 仙桃市| 徐汇区| 博兴县| 佛坪县| 五华县| 黄石市| 扶余县| 武山县| 定结县| 虞城县| 开封市| 瑞安市| 平武县| 九江县| 固原市| 罗甸县| 嵊州市| 河池市| 桃园县| 东乌珠穆沁旗| 贵州省| 延庆县| 和林格尔县| 体育| 浙江省|