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

C語(yǔ)言中分支和循環(huán)的6種實(shí)現(xiàn)形式總結(jié)

 更新時(shí)間:2023年04月11日 08:30:56   作者:努力學(xué)習(xí)游泳的魚  
C語(yǔ)言時(shí)一門結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,這篇文章主要介紹了C語(yǔ)言中的分支和循環(huán)的6種實(shí)現(xiàn)形式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

C語(yǔ)言時(shí)一門結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,本篇博客主要講解C語(yǔ)言中的分支和循環(huán)的實(shí)現(xiàn)形式。分別是:

  • if語(yǔ)句。
  • switch語(yǔ)句。
  • while循環(huán)。
  • for循環(huán)。
  • do while循環(huán)。
  • goto語(yǔ)句。

真假

C語(yǔ)言里,0表示假,非0表示真。

比如:-1為真。

1.if語(yǔ)句

if語(yǔ)句的特點(diǎn)是:

  • 實(shí)現(xiàn)分支效果。
  • 格式是:if(條件) {語(yǔ)句列表1} else {語(yǔ)句列表2}
  • 語(yǔ)句列表可以是1條或多條語(yǔ)句。
  • 如果條件為真,執(zhí)行語(yǔ)句列表1,否則執(zhí)行語(yǔ)句列表2。
  • 如果語(yǔ)句列表只有1條語(yǔ)句,則可以省略大括號(hào)。
  • else可以省略。

比如求2個(gè)數(shù)的較大值:

if (a > b)
{
    max = a;
}
else
{
    max = b;
}

由于語(yǔ)句列表如果只有1條語(yǔ)句,可以省略大括號(hào),所以也可以這么寫:

if (a > b)
    max = a;
else
    max = b;

2.switch語(yǔ)句

switch語(yǔ)句的特點(diǎn)是:

實(shí)現(xiàn)分支效果。

格式是:

switch (整型常量表達(dá)式)
{
case 整型常量1:
    {語(yǔ)句列表1}
case 整型常量2:
    {語(yǔ)句列表2}
case 整型常量3:
    {語(yǔ)句列表3}
    // ...
default:
    {語(yǔ)句列表n}
}

語(yǔ)句列表表示1條或多條語(yǔ)句,外面的大括號(hào)可以省略。

“標(biāo)簽”分為一堆case和default。

“整型常量表達(dá)式”的結(jié)果是幾,就會(huì)從case幾進(jìn)去。

如果所有的case都進(jìn)不去,就從default位置進(jìn)去。

一旦“進(jìn)去”,就會(huì)一直往下執(zhí)行所有的代碼(此時(shí)會(huì)無(wú)視掉所有的“標(biāo)簽”)。

執(zhí)行時(shí)如果遇到break,就會(huì)跳出switch語(yǔ)句。

例子1:輸入幾,就打印星期幾。如果輸入的不是1~7,打印“輸入錯(cuò)誤”。

int n = 0;
scanf("%d", &n);
switch(n)
{
case 1:
    printf("星期一\n");
    break;
case 2:
    printf("星期二\n");
    break;
    // ...
case 6:
    printf("星期六\n");
    break;
case 7:
    printf("星期天\n");
    break;
default:
    printf("輸入錯(cuò)誤\n");
    break;
}

n是幾,就會(huì)從case幾進(jìn)去,接著往下執(zhí)行,遇到break就跳出switch語(yǔ)句。

注意一旦所有的case都匹配不上,就會(huì)走default。

3.while循環(huán)

while循環(huán)的特點(diǎn)是:

格式:while (條件) {語(yǔ)句列表}

如果條件為真,就會(huì)執(zhí)行語(yǔ)句列表,執(zhí)行完后繼續(xù)判斷條件是否為真,如果為真就繼續(xù)執(zhí)行,以此類推。知道某一次判斷時(shí)條件為假,就跳出循環(huán)。

如果語(yǔ)句列表只有1條語(yǔ)句,則大括號(hào)可以省略。

如果遇到break,會(huì)直接跳出循環(huán)。

如果遇到continue,則會(huì)直接跳轉(zhuǎn)到循環(huán)的判斷部分。

例子:打印1~10。

int i = 1;
while (i <= 10)
{
    printf("%d ", i);
    ++i;
}

如果有break,就會(huì)直接跳出循環(huán),比如:

int i = 1;
while (i <= 10)
{
    if (i == 5)
        break;
        
    printf("%d ", i);
    ++i;
}

上面的代碼中,當(dāng)i為5時(shí)跳出循環(huán),此時(shí)屏幕上只打印了1~4。

如果遇到continue,會(huì)直接跳轉(zhuǎn)到判斷部分。如:

int i = 1;
while (i <= 10)
{
    if (i == 5)
        continue;
        
    printf("%d ", i);
    ++i;
}

上面的代碼中,當(dāng)i為5時(shí),會(huì)直接跳轉(zhuǎn)到判斷部分,此時(shí)i仍然是5,又遇到continue,跳轉(zhuǎn)到判斷部分,由于++i一直沒(méi)有機(jī)會(huì)執(zhí)行,所以無(wú)限循環(huán)了。

4.for循環(huán)

for循環(huán)的特點(diǎn)是:

格式:for (初始化語(yǔ)句; 判斷表達(dá)式; 調(diào)整語(yǔ)句) {語(yǔ)句列表}

語(yǔ)句列表可以是1條或多條語(yǔ)句,如果是1條語(yǔ)句,大括號(hào)可以省略。

首先執(zhí)行初始化,接著判斷,如果為真,就執(zhí)行語(yǔ)句列表,執(zhí)行完后,調(diào)整,再判斷,如果為真,就執(zhí)行語(yǔ)句列表,再調(diào)整,再判斷,直到某次判斷條件為假跳出循環(huán)。

遇到break直接跳出循環(huán)。

遇到continue,跳轉(zhuǎn)到調(diào)整語(yǔ)句。

例子:打印1~10。

for (int i=1; i<=10; ++i)
{
    printf("%d ", i);
}

如果遇到break,就直接跳出循環(huán)。如:

for (int i=1; i<=10; ++i)
{
    if (i == 5)
        break;
        
    printf("%d ", i);
}

上面的代碼中,當(dāng)i為5時(shí),跳出循環(huán)。屏幕上只打印1~4。

如果遇到continue,就直接跳轉(zhuǎn)到調(diào)整部分。如:

for (int i=1; i<=10; ++i)
{
    if (i == 5)
        continue;
        
    printf("%d ", i);
}

上面的代碼中,當(dāng)i為5時(shí),直接跳轉(zhuǎn)到++i,i變成6,后面正常執(zhí)行。輸出結(jié)果是,屏幕上打印1~10但是不包括5。

5.do while循環(huán)

do while循環(huán)的特點(diǎn)是:

格式:do{語(yǔ)句列表}while(條件);

語(yǔ)句列表可以是1條或多條語(yǔ)句,如果只有1條語(yǔ)句,可以省略大括號(hào)。

首先執(zhí)行語(yǔ)句列表,再判斷條件是否為真,如果為真就再次執(zhí)行語(yǔ)句列表,執(zhí)行完后再判斷,直到條件為假,跳出循環(huán)。

遇到break直接跳出循環(huán)。

遇到continue跳轉(zhuǎn)到判斷部分。

例子:打印1~10。

int i = 1;
do
{
    printf("%d ", i);
    ++i;
} while (i <= 10);

如果遇到break就會(huì)直接跳出循環(huán)。如:

int i = 1;
do
{
	if (i == 5)
		break;

	printf("%d ", i);
	++i;
} while (i <= 10);

上面的代碼中,由于當(dāng)i為5時(shí)就跳出了循環(huán),屏幕上只打印了1~4。

如果遇到continue就跳轉(zhuǎn)到判斷部分。如:

int i = 1;
do
{
	if (i == 5)
		continue;

	printf("%d ", i);
	++i;
} while (i <= 10);

當(dāng)i為5時(shí),跳轉(zhuǎn)到判斷部分,由于i仍然是5,會(huì)重新進(jìn)入循環(huán),此時(shí)又會(huì)跳轉(zhuǎn)到判斷部分,就無(wú)限循環(huán)了。

6.goto語(yǔ)句

goto語(yǔ)句會(huì)直接跳轉(zhuǎn)到標(biāo)記處。注意,goto語(yǔ)句不能跨函數(shù)跳轉(zhuǎn)。

如:打印1~10。

int i = 1;
again:
printf("%d ", i);
++i;
if (i <= 10)
    goto again;

上面的代碼中,如果i沒(méi)有超過(guò)10,就會(huì)跳轉(zhuǎn)到again處。

總結(jié)

1.if, else配對(duì)使用,可以實(shí)現(xiàn)分支效果。

2.如果可以用整型常量表達(dá)式的不同值來(lái)實(shí)現(xiàn)分支,可以采用switch語(yǔ)句。

3.while和do while循環(huán)的區(qū)別是,while是先判斷再執(zhí)行,do while恰恰相反,先執(zhí)行再判斷。

4.for循環(huán)括號(hào)里有三條語(yǔ)句,分別完成初始化、判斷和調(diào)整工作。

5.goto語(yǔ)句可以跳轉(zhuǎn)到同一個(gè)函數(shù)內(nèi)的任意位置,但是有隱患,不建議使用。

到此這篇關(guān)于C語(yǔ)言中分支和循環(huán)的6種實(shí)現(xiàn)形式總結(jié)的文章就介紹到這了,更多相關(guān)C語(yǔ)言分支 循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中explict關(guān)鍵字用法

    C++中explict關(guān)鍵字用法

    這篇文章主要介紹了C++中explict關(guān)鍵字用法的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • 詳解C++編程中的單目運(yùn)算符重載與雙目運(yùn)算符重載

    詳解C++編程中的單目運(yùn)算符重載與雙目運(yùn)算符重載

    這篇文章主要介紹了詳解C++編程中的單目運(yùn)算符重載與雙目運(yùn)算符重載,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • C++代碼實(shí)現(xiàn)鏈隊(duì)列詳解

    C++代碼實(shí)現(xiàn)鏈隊(duì)列詳解

    下面小編就為大家分享一篇C++代碼實(shí)現(xiàn)鏈隊(duì)列的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧,希望能夠給你帶來(lái)幫助
    2021-09-09
  • 詳解C++ string字符串類

    詳解C++ string字符串類

    這篇文章主要介紹了C++ string字符串類,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • C++中的六個(gè)函數(shù)

    C++中的六個(gè)函數(shù)

    本文給大家介紹了C++中的六個(gè)函數(shù),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • OpenCV實(shí)現(xiàn)圖像背景虛化效果原理詳解

    OpenCV實(shí)現(xiàn)圖像背景虛化效果原理詳解

    相信用過(guò)相機(jī)的同學(xué)都知道虛化特效,這是一種使焦點(diǎn)聚集在拍攝主題上,讓背景變得朦朧的效果。本文將詳細(xì)介紹一些這一效果的實(shí)現(xiàn)原理以及代碼,需要的可以參考一下
    2022-03-03
  • C++類中的常量介紹

    C++類中的常量介紹

    const數(shù)據(jù)成員只在某個(gè)對(duì)象生存期內(nèi)是常量,而對(duì)于整個(gè)類而言卻是可變的,因?yàn)轭惪梢詣?chuàng)建多個(gè)對(duì)象,不同的對(duì)象其const數(shù)據(jù)成員的值可以不同
    2013-10-10
  • C/C++線程退出的四種方法小結(jié)

    C/C++線程退出的四種方法小結(jié)

    本文主要介紹了C/C++線程退出的四種方法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 淺談do {...} while (0) 在宏定義中的作用

    淺談do {...} while (0) 在宏定義中的作用

    下面小編就為大家?guī)?lái)一篇淺談do {...} while (0) 在宏定義中的作用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • C++實(shí)現(xiàn)雙向起泡排序算法

    C++實(shí)現(xiàn)雙向起泡排序算法

    這篇文章主要為大家詳細(xì)介紹了如何利用C++實(shí)現(xiàn)雙向起泡排序算法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以嘗試一下
    2022-11-11

最新評(píng)論