C語言-選擇結構

anhuizjh發表於2024-07-21

在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;
}

相關文章