日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言實例講解選擇語句的使用_C 語言

作者:嵌入式宇宙 ? 更新時間: 2022-06-29 編程語言

一、if…else選擇語句詳解

1. 圖示if…else流程

??????? 用圖示來表示 if…else 語句其實就是當條件為真的時候執行某一部分的內容,當條件為假的時候就跳過這部分的內容接著往下執行。

2. if…else代碼流程

if (表達式)
{
? ? 語句塊1;
}
else
{
? ? 語句塊2;
}

??????? if…else語句最常見的流程就是上面這樣。當表達式為真的時候執行語句塊1的內容,當表達式為假的時候執行語句塊2的內容。那么可能有些人就會問了,表達式什么樣才是真,什么樣才是假?回答這個問題很簡單,只要表達式的結果為0,那么表達式就是假,其余情況都是真。

3. if…else的三種情況

3.1 if語句

if (表達式)
{
? ? 語句塊1;
}

當只有 if 的時候,表達式為真就執行語句塊1,否則就跳過語句塊的內容。

3.2 if…else語句

if (表達式)
{
? ? 語句塊1;
}
else
{
? ? 語句塊2;
}

當 if…else 的時候,表達式為真就執行語句塊1,表達式為假就執行語句塊2。

3.3 if…else if…else語句

if (表達式1)
{
? ? 語句塊1;
}
else if(表達式2)
{
? ? 語句塊2;
}
else
{
?? ?語句塊3;
}

???????當表達式1為真的時候就只執行語句塊1的內容,其余語句塊不執行。當表達式1為假并且表達式2為真的時候就只執行語句塊2的內容,其余語句塊不執行。當表達式1和表達式2都為假的時候執行語句塊3的內容,其余語句塊不執行。在這種情況下,else if是可以無限加的,并不是只能有一個else if。

???????需要注意的是else不可以單獨出現,if可以單獨出現,并且else總是和它同級的那個if 相匹配。

4. 代碼示例

源代碼:

#include <stdio.h>
int main()
{
    int scores = 0;
    printf("Please enter student scores: ");
    scanf("%d", &scores);
    if (scores < 0) {
        printf("input error\n");  
    } else if (scores < 60) {
       printf("Underachievement!\n");
    } else if (scores < 80) {
        printf("academically qualified!\n");
    } else if (scores <= 100) {
        printf("perfect grade!\n");
    } else {
        printf("input error\n");
    }
    return 0;
}

二、三目運算符(? :)詳解

表達式1 ? 表達式2 : 表達式3?

三目運算符是一個運算符,并且C語言中有且只有一個三目運算符。使用三目運算符可以用來代替 if…else 語句。上面三目運算符的流程為,如果表達式1為真,則將表達式2的結果作為最終運算結果,否則就將表達式3的結果作為最終運算結果。舉例例子具體說明下:

源代碼:

#include <stdio.h>
int main()
{
    int a = 0, b = 0, max = 0;
    printf("請輸入兩個數: ");
    scanf("%d%d", &a, &b);
    max = a > b ? a : b;
    printf("兩數中較大的數是: %d", max);
    return 0;
}

三、switch…case選擇語句詳解

1. 圖示switch…case流程

???????switch…case語句就是,如果表達式1的 結果和下面的表達中任意一個表達式相等,就執行對應的代碼塊的內容,而其余代碼塊中的內容不會被執行。

2. switch…case代碼流程

?? ?switch(表達式1)
?? ?{
?? ??? ?case 表達式2:
?? ??? ??? ?語句塊2;
?? ??? ??? ?break;
?? ??? ?case 表達式3:
?? ??? ??? ?語句塊3;
?? ??? ??? ?break;
?? ??? ?case 表達式4:
?? ??? ??? ?語句塊4;
?? ??? ??? ?break;
?? ??? ?……
?? ??? ?default:
?? ??? ??? ?語句塊n;
?? ??? ??? ?break;
?? ?}

???????switch…case語句在代碼中的流程一般如上所示。其中表達式1的結果一般是整形常量或字符常量。當表達式的結果和 case 后面的表達式結果一致時,就會執行對應的語句塊的內容,否則,就會進入default中,執行語句塊n 。然后在break的時候跳出大括號的內容。

在使用 switch…case 語句時有兩點需要大家特別注意。

  • 如果語句塊后面沒有break,那么程序就會繼續執行下面的內容,直到遇到下一個break或后面沒有內容時而退出。比方說,表達式1和表達式3的結果相同,程序就會執行語句塊3的內容,如果有上面的break,switch…case 語句到此結束,直接跳出 switch 大括號中的所有內容。但是如果這個沒有break,那么程序執行完語句塊3后還會接著執行語句塊4,直到遇到 break 或 switch 大括號后面沒有內容而退出。
  • 在 switch…case 語句中,default 和 case 的位置沒有關系,編譯器都會先找 case,等 case 不滿足條件之后才會找 default。因為一些常規和標準的寫法 default 都會在最后面,但是在面試筆試中為了考察大家對于 switch…case 語句的掌握程度,會將 default 寫在開頭或中間,所以這個時候大家就要特別注意了。

3. 代碼示例

#include <stdio.h>
int main()
{
    int scores = 0;
    char grade = 'Z';
    printf("Please enter student scores: ");
    scanf("%d", &scores);
    if (scores < 0) {
        printf("input error\n");  
    } else if (scores < 60) {
        grade = 'C';
    } else if (scores < 80) {
        grade = 'B';
    } else if (scores <= 100) {
        grade = 'A';
    } else {
        printf("input error\n");
    }
    switch(grade)
    {
        case 'A':
            printf("perfect grade!\n");
            break;
        case 'B':
            printf("academically qualified!\n");
            break;
        case 'C':
            printf("Underachievement!\n");
            break;
        default:
            printf("input error\n");
            break;
    }
    return 0;
}

原文鏈接:https://blog.csdn.net/liung_/article/details/123023524

欄目分類
最近更新