C語(yǔ)言的分支和循環(huán)語(yǔ)句你了解嗎
1、什么是語(yǔ)句?
C語(yǔ)句可分為以下五類:
- 表達(dá)式語(yǔ)句
- 函數(shù)調(diào)用語(yǔ)句
- 控制語(yǔ)句
- 復(fù)合語(yǔ)句
- 空語(yǔ)句
控制語(yǔ)句用于控制程序的執(zhí)行流程,以實(shí)現(xiàn)程序的各種結(jié)構(gòu)方式,它們由特定的語(yǔ)句定義符組成,C語(yǔ)言有九種控制語(yǔ)句。
可分成以下三類:
1. 條件判斷語(yǔ)句也叫分支語(yǔ)句:if語(yǔ)句、switch語(yǔ)句;
2. 循環(huán)執(zhí)行語(yǔ)句:do while語(yǔ)句、while語(yǔ)句、for語(yǔ)句;
3. 轉(zhuǎn)向語(yǔ)句:break語(yǔ)句、goto語(yǔ)句、continue語(yǔ)句、return語(yǔ)句。
2、分支語(yǔ)句(選擇結(jié)構(gòu))
2.1、if語(yǔ)句
語(yǔ)法結(jié)構(gòu):
//單分支
if(表達(dá)式)
語(yǔ)句;
if(表達(dá)式)
語(yǔ)句1;
else
語(yǔ)句2;
//多分支
if(表達(dá)式1)
語(yǔ)句1;
else if(表達(dá)式2)
語(yǔ)句2;
else
語(yǔ)句3;else的匹配:else是和它離的最近的if匹配的。
2.2、switch語(yǔ)句
switch是一種多分支語(yǔ)句
switch(整型表達(dá)式)
{
case 整形常量表達(dá)式:
語(yǔ)句;
}2.2.1、switch語(yǔ)句中的break
switch語(yǔ)句需要搭配break才能實(shí)現(xiàn)真正的分支
#include <stdio.h>
int main()
{
int day = 0;
switch(day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0;
}當(dāng)需要:
1. 輸入1-5,輸出的是“weekday”;
2. 輸入6-7,輸出“weekend”
所以我們的代碼就應(yīng)該這樣實(shí)現(xiàn)了:
#include <stdio.h> //switch代碼演示
int main()
{
int day = 0;
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0;
}break語(yǔ)句 的實(shí)際效果是把語(yǔ)句列表劃分為不同的分支部分。
編程好習(xí)慣
在最后一個(gè) case 語(yǔ)句的后面加上一條 break語(yǔ)句。(之所以這么寫是可以避免出現(xiàn)在以前的最后一個(gè) case 語(yǔ)句后面忘了添加 break語(yǔ)句)。
2.2.2default子句
當(dāng)所有case條件都不滿足時(shí)就會(huì)執(zhí)行default語(yǔ)句
3、循環(huán)語(yǔ)句
3.1、while循環(huán)
while 語(yǔ)法結(jié)構(gòu)
while(表達(dá)式)
循環(huán)語(yǔ)句;while語(yǔ)句執(zhí)行的流程:

在屏幕上打印0-10的數(shù)字。
#include<stdio.h>int main(){ int i = 0; while(i<=10) { printf("%d ", i); i = i+1; } return 0;}#include<stdio.h>
int main()
{
int i = 0;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}3.1.1while中的break和continue
break:跳出整個(gè)循環(huán)
continue:跳過一次循環(huán)
3.2、for循環(huán)
3.2.1、語(yǔ)法
for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3)
循環(huán)語(yǔ)句;表達(dá)式1
表達(dá)式1為初始化部分,用于初始化循環(huán)變量的。
表達(dá)式2
表達(dá)式2為條件判斷部分,用于判斷循環(huán)時(shí)候終止。
表達(dá)式3
表達(dá)式3為調(diào)整部分,用于循環(huán)條件的調(diào)整。
for循環(huán)的執(zhí)行流程

3.2.2、break和continue在for循環(huán)中
與while循環(huán)相同
3.2.3、for語(yǔ)句的循環(huán)控制變量
1、不要在循環(huán)體內(nèi)修改循環(huán)變量防止死循環(huán)
2、采用前閉后開區(qū)間寫法
for(i=0;i<10;i++)
{}3.2.4、for循環(huán)的變種
#include <stdio.h>
int main()
{
for(;;)
{
printf("hehe\n");
}
//for循環(huán)中的初始化部分,判斷部分,調(diào)整部分是可以省略的,但是不建議初學(xué)時(shí)省略,容易導(dǎo)致問 題。 return 0;
}3.3do…while()循環(huán)
3.3.1、語(yǔ)法
do
循環(huán)語(yǔ)句;
while(表達(dá)式);3.3.2、執(zhí)行流程

3.3.3、 do語(yǔ)句的特點(diǎn)
先執(zhí)行一次循環(huán)體
3.3.4、break和continue
同for循環(huán)
4、goto語(yǔ)句
語(yǔ)法格式:
again: goto again;
使用場(chǎng)景:
跳出多層循環(huán)
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語(yǔ)言中函數(shù)棧幀的創(chuàng)建和銷毀的深層分析
在C語(yǔ)言中,每一個(gè)正在運(yùn)行的函數(shù)都有一個(gè)棧幀與其對(duì)應(yīng),棧幀中存儲(chǔ)的是該函數(shù)的返回地址和局部變量。從邏輯上講,棧幀就是一個(gè)函數(shù)執(zhí)行的環(huán)境:函數(shù)參數(shù)、函數(shù)的局部變量、函數(shù)執(zhí)行完后返回到哪里等等2022-04-04
C++類繼承之子類調(diào)用父類的構(gòu)造函數(shù)的實(shí)例詳解
這篇文章主要介紹了C++類繼承之子類調(diào)用父類的構(gòu)造函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過本文大家能夠掌握C++類繼承的相關(guān)知識(shí),需要的朋友可以參考下2017-09-09
怎么用C++提取任意一張圖片的特征(從內(nèi)存讀取數(shù)據(jù))
這篇文章主要介紹了用C++提取任意一張圖片的特征(從內(nèi)存讀取數(shù)據(jù))的相關(guān)資料,需要的朋友可以參考下2017-05-05
一起來學(xué)習(xí)C++的動(dòng)態(tài)內(nèi)存管理
這篇文章主要為大家詳細(xì)介紹了C++的動(dòng)態(tài)內(nèi)存管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
C語(yǔ)言?分析逆序字符串與字符串的逆序輸出有什么區(qū)別
例如,給定一個(gè)字符串?s,將?s?中的字符順序顛倒過來,如?s?=?“abcd”,逆序后變成?“dcba”??梢圆捎枚喾N方法對(duì)字符串進(jìn)行逆序,以下將對(duì)其中的方法和字符串的逆序輸出的區(qū)別進(jìn)行分析2022-04-04
用C語(yǔ)言實(shí)現(xiàn)單鏈表的各種操作(一)
本篇文章是對(duì)用C語(yǔ)言實(shí)現(xiàn)單鏈表的各種操作進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
解析C++編程中如何使用設(shè)計(jì)模式中的狀態(tài)模式結(jié)構(gòu)
這篇文章主要介紹了如何在C++編程中適用設(shè)計(jì)模式中的狀態(tài)模式結(jié)構(gòu),狀態(tài)模式強(qiáng)調(diào)將特定狀態(tài)相關(guān)的邏輯分散到一些類的狀態(tài)類中,需要的朋友可以參考下2016-03-03

