欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

總述

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

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

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

while循環(huán)

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

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

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

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

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

這便是while最簡單的用法,接下來看一下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的時候,直接跳出了整個循環(huán)不再執(zhí)行

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

continue

在英語中,continue是繼續(xù)的意思 ,在循環(huán)中,表示跳過這次循環(huá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;
}

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

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

核心問題在于**這樣i的值沒辦法變化,那我們把i放在continue前面來試試**

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

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

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

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

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

for循環(huán)

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

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

循環(huán)體;

  • 表達式1為**初始化部分,用于初始化循環(huán)變量的**。
  • 表達式2為_條件判斷部分_,用于**判斷循環(huán)時候終止**。
  • 表達式3為_調(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基本沒啥區(qū)別,就是跳出循環(huán)

continue

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

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

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

當(dāng)然,一個人想寫bug誰也攔不住他

比如:

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

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

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

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

for循環(huán)嵌套

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

寫一個九九乘法表

#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ī)讉€for循環(huán)的注意事項

  • 不可在for 循環(huán)體內(nèi)修改循環(huán)變量,防止 for 循環(huán)失去控制。
  • 建議for語句的循環(huán)控制變量的取值采用“前閉后開區(qū)間”寫法
#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++)//前閉后開
        printf("%d ",arr[i]);
    return 0;
}

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

給大家補充一個小知識

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

do-while循環(huán)

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

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

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

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

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

goto語句

對于goto語句,是一種跳轉(zhuǎn),其實沒必要說,因為能用它解決的用循環(huán)都能解決

簡單介紹一下,但是并不推薦大家使用

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

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

這只是goto語句的語法

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

總結(jié)

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

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

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

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

相關(guān)文章

  • C++11關(guān)于auto關(guān)鍵字的使用示例

    C++11關(guān)于auto關(guān)鍵字的使用示例

    今天小編就為大家分享一篇關(guān)于C++11關(guān)于auto關(guān)鍵字的使用示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C語言中程序環(huán)境和預(yù)處理的詳細(xì)圖文講解

    C語言中程序環(huán)境和預(yù)處理的詳細(xì)圖文講解

    這篇文章主要給大家介紹了關(guān)于C語言中程序環(huán)境和預(yù)處理的相關(guān)資料,我們寫的C語言代碼,從運行,到在屏幕上生成結(jié)果,經(jīng)歷了比較復(fù)雜的過程,需要的朋友可以參考下
    2023-02-02
  • Linux下編譯C程序的過程

    Linux下編譯C程序的過程

    我們總是在Linux下輸入 gcc -o app main.c 即可編譯好程序,對于具體的詳細(xì)過程及流程,相信親們就不太了解啦!下面給大家展示一下C編譯器的解釋全過程。
    2016-01-01
  • C++ 開發(fā)之實現(xiàn)操作符重載的實例

    C++ 開發(fā)之實現(xiàn)操作符重載的實例

    這篇文章主要介紹了C++ 開發(fā)之實現(xiàn)操作符重載的實例的相關(guān)資料,這里附有實例代碼和實現(xiàn)效果圖幫助大家參考實踐,需要的朋友可以參考下
    2017-07-07
  • C語言使用libZPlay錄制聲音并寫到文件的方法

    C語言使用libZPlay錄制聲音并寫到文件的方法

    這篇文章主要介紹了C語言使用libZPlay錄制聲音并寫到文件的方法,實例分析了C語言操作音頻文件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C語言用封裝方法實現(xiàn)飛機大戰(zhàn)游戲

    C語言用封裝方法實現(xiàn)飛機大戰(zhàn)游戲

    這篇文章主要為大家詳細(xì)介紹了C語言用封裝方法實現(xiàn)飛機大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解如何用c++實現(xiàn)平衡二叉樹

    詳解如何用c++實現(xiàn)平衡二叉樹

    平衡二叉樹(Balanced Binary Tree)又被稱為AVL樹(有別于AVL算法),由前蘇聯(lián)的數(shù)學(xué)家Adelse-Velskil和Landis在1962年提出的高度平衡的二叉樹,根據(jù)科學(xué)家的英文名也稱為AVL樹。本文介紹了它的原理和如何用C++代碼來實現(xiàn)
    2021-06-06
  • Objective-C不帶加減號的方法實例

    Objective-C不帶加減號的方法實例

    顯而易見的事實是,Objective-C 中,+ 表示類方法,- 表示實例方法,這篇文章主要給大家介紹了關(guān)于Objective-C不帶加減號的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • C++實現(xiàn)LeetCode(347.前K個高頻元素)

    C++實現(xiàn)LeetCode(347.前K個高頻元素)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(347.前K個高頻元素),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 解析Linux下C++編譯和鏈接

    解析Linux下C++編譯和鏈接

    編譯&鏈接對C&C++程序員既熟悉又陌生,熟悉在于每份代碼都要經(jīng)歷編譯&鏈接過程,陌生在于大部分人并不會刻意關(guān)注編譯&鏈接的原理。本文通過開發(fā)過程中碰到的四個典型問題來探索64位linux下C++編譯&鏈接的那些事。
    2021-05-05

最新評論