我們大家都知道,c語言是一門** 結構化 **的程序設計語言,程序的運行都是以某種結構和順序為骨架去執行的,那么本期就向大家介紹一下c語言的幾種結構。
本期主要介紹分支與循環語句
1.什么是語句
2.if語句
3.switch語句
- 什么是語句
c語言中用一個分號 ;隔開的就是一條語句。例如:
int main()
{
int a=0;//語句由分號隔開,一條語句由分號表示結束
printf ("%d\\n" , a);
; //這也是一種語句
return 0;
}
一個程序基本的組成單位就是語句,值得一提的是 即使一個語句中只有一個分號(如上所示),它也是一條正確的語句,我們后面會有特殊的用法。
- 分支語句
如上圖,我們在編程中常會遇到上述的結構,它們含有兩個或多個分支,如果想準確表達上圖所表示的意思,我們就要使用分支語句,其中包含if語句和switch語句。
- lf語句
if語句的語法結構
if(表達式){
?? 語句;
}
if(表達式){
??語句1;
}
else
{
??語句2;
}
//多分支
if(表達式1){
??語句1
}
else if(表達式2){
??語句2;
}
else {
??語句3;
}
以上三種結構幾乎可用于一切的分支情況。
-
if語句如何執行
對于這種結構的分支語句來說:
if(表達式){
?? 語句;
}
只需要判斷表達式的值是否為真,若表達式為真則執行語句,否則跳出分支語句。
如何判斷表達式是否為真?
表達式為零則為假,表達式為非零則為真
對于這種結構的分支語句來說:
if(表達式){
??語句1;
}
else
{
??語句2;
}
只需要判斷表達式的值是否為真,若表達式為真則執行語句1,否則執行語句2。
對于這種結構的分支語句來說:
if(表達式1){
??語句1
}
else if(表達式2){
??語句2;
}
else {
??語句3;
}
首先判斷表達式1的值是否為真,如果為真則執行語句1,否則判斷表達式2的值是否為真,若表達式2的值為真則執語句2,否則執行語句3。
值得一提的是,if自動匹配之后的一條語句,但若超過兩條,則需要用”{}“括起來。如下圖所示,程序返回了”4“,驗證了我們的說法。
#include
int test(int a)
{
if (a)
return 2;//若if包含下一條語句,程序會打印4,若包含兩條以上,程序會打印2
return 4;
}
int main()
{
int a = 1;
int b=test(a);
printf("%d\\n", b);
return 0;
}
- switch語句
switch也是一種分支語句。常常用于多分支的情況,例如,下面這種情景:
輸入1,輸出星期一
輸入2,輸出星期二
輸入3,輸出星期三
輸入4,輸出星期四
輸入5,輸出星期五
輸入6,輸出星期六
輸入7,輸出星期日
switch語句的語法結構
switch(整型表達式)
{
??case 整型表達式值1:
????語句1;
??case 整型表達式值2:
????語句2;
??case 整型表達式值3:
????語句3;
??case 整型表達式值4:
????語句4;
…
??default :
????語句5;
}
-
switch語句如何執行
switch語句首先判斷整型表達式的值,當整型表達式與某個case后的值i相等時,則執行語句i至最后一條語句,當整型表達式的值與任意一個case后的值均不相等,則執行default語句至最后一條語句。
-
switch中的break
switch語句只能選擇從某條語句開始執行,并不能選擇只執行某條case后的語句。也就是說,switch語句在開始執行后,除非遇到break或return,否則語句會逐個執行接下來的case語句直到語句結束。這里可以借用break語句來實現多分支。
那么上面打印星期幾的問題就可用以下代碼來解決:
# include
int main()
{
int day;
printf("請輸入day的值\\n");
scanf_s("%d", &day);
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;
}
}
- switch語句的特殊應用場景
那么如果我們的需求變成了”輸入15,輸出工作日,輸入67,輸出休息日“的話,我們可以通過調整輸出語句和break 語句的位置來實現。如下所示
#include
#include
#include
int main()
{
int day;
printf("請輸入day的值\\n");
scanf_s("%d", &day);
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:printf("工作日\\n");break;
case 6:
case 7:printf("休息日\\n");break;
}
}
-
C語言
+關注
關注
180文章
7628瀏覽量
139918 -
結構化
+關注
關注
0文章
27瀏覽量
10380 -
程序設計語言
+關注
關注
0文章
3瀏覽量
6674
發布評論請先 登錄
C語言中for循環的用法和應用 C語言中for循環與while循環的區別

C語言入門教程-if語句和while循環
C語言基礎篇--選擇/順序/循環結構

評論