在C語言中,一共有三種程式結構:
順序結構、選擇結構(分支結構)和迴圈結構。
C語言提供2種型別的選擇語句:if語句和switch語句。
C語言由一個分號;隔開的就是一條語句。
在C語言中 0表示假,非0表示真。
if語句可以是任何語句,也可以是有若干語句組成的一個語句組,在這種情況下,這組語句需要用花括號“{}”括起來。
if語句
單分支if選擇語句
格式:
if(表示式)
語句;
功能:首先計算"表示式"的值,如果表示式的值為真,則執行"語句",否則不執行,而是轉去執行本語句後面的語句。
雙分支if_else語句
格式:
if(表示式)
語句塊1;
else
語句塊2;
功能:首先計算"表示式"的值,如果表示式的值為真,語句塊1,否則執行else後面的語句塊2。
例:判斷學生分數及格
#include<stdio.h>
int main()
{
int i = 0;
scanf("%d", &i);
if (i >= 60)
printf("及格");
else
printf("不及格");
return 0;
}
注意點:
else和它離的最近的未匹配的if進行匹配。,如下程式碼不返回列印值。
相當於下面這樣程式碼,判斷a==1,為假,不執行巢狀if語句。
多分支if_else選擇語句
格式:
if(表示式1)
語句塊1;
else if(表示式2)
語句塊2;
else if(表示式3)
語句塊3;
else if(表示式4)
語句塊4;
else
語句塊5;
例:年齡分段
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("少年\n");
}
else if (age >= 18 && age < 30)
{
printf("青年\n");
}
else if (age >= 30 && age < 50)
{
printf("中年\n");
}
else if (age >= 50 && age < 80)
{
printf("老年\n");
}
else
{
printf("老壽星\n");
}
return 0;
}
switch語句
多分支開關語句switch
格式:
switch(整型表示式)
{
case 整型常量表示式1: 語句塊1;
break;
case 整型常量表示式2: 語句塊2;
break;
...
case 整型常量表示式n: 語句塊n;
break;
default: 語句塊n+1;
}
首先,計算switch後圓括號內的表示式的值,然後,再這個值逐個與各xase的常量表示式i的值進行比較。當找到與其相等(匹配)的case時,就執行該case中的語句塊,如果再語句塊中有break語句,便退出該switch語句。如果沒有break語句,則執行完某個語句塊後,連續執行其後的語句塊,直到遇到另外一個break語句,結束switch的執行,或者一直執行到最後的語句塊,然後,結束switch語句的執行。
例:判斷星期
#include <stdio.h>
int main()
{
int day = 0;
scanf("%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;
default:
printf("輸入錯誤");
}
return 0;
}