深入解析C++中的switch case語句

switch case語句是C++中的一種流程式控制制語句,它通常用於多個選項的判斷,可以使代碼更加簡潔和易讀。在本篇文章中,我們將從多個方面對switch case語句進行詳細的闡述。

一、switch case成績

在學習switch case語句時,第一個經典的例子是計算成績等級。以下是一個示例代碼:

#include 

using namespace std;

int main()
{
    int score;
    cin >> score;
    switch(score/10)
    {
        case 10:
        case 9:
            cout << "A" << endl;
            break;
        case 8:
            cout << "B" << endl;
            break;
        case 7:
            cout << "C" << endl;
            break;
        case 6:
            cout << "D" << endl;
            break;
        default:
            cout << "E" << endl;
            break;
    }
    return 0;
}

這個例子中,我們通過輸入成績來判斷成績等級,並列印出對應的等級。通過這個例子,我們可以發現switch case語句的語法結構:

  1. 在括弧中指定需要進行判斷的變數或表達式;
  2. 在case語句中指定可能的情況;
  3. 在break語句中結束當前case語句;
  4. 在default語句中指定未匹配到任何case語句時的默認情況。

在這個例子中,我們使用了兩個連續的case語句,這是因為當成績等級為A或B時,我們需要輸出相同的內容。

二、switch case成績等級

在上一個例子中,我們已經展示了通過switch case語句實現成績等級判斷的方法,但實際上,我們還可以使用多個case語句來實現相同的效果。以下是一個相應的示例代碼:

#include 

using namespace std;

int main()
{
    char grade;
    cin >> grade;
    switch(grade)
    {
        case 'A':
        case 'a':
            cout << "90~100" << endl;
            break;
        case 'B':
        case 'b':
            cout << "80~89" << endl;
            break;
        case 'C':
        case 'c':
            cout << "70~79" << endl;
            break;
        case 'D':
        case 'd':
            cout << "60~69" << endl;
            break;
        case 'E':
        case 'e':
            cout << "<60" << endl;
            break;
        default:
            cout << "Input error" << endl;
            break;
    }
    return 0;
}

在這個例子中,我們將大寫字母和小寫字母都視為同一個等級,並輸出相應的分數段。這個例子展示了switch case語句對字元類型數據的支持。

三、switch case穿透

switch case穿透是指當我們沒有在某個case語句中使用break語句時,程序會依次執行後面的語句直到遇到下一個break語句或整個switch case語句結束。以下是一個示例代碼:

#include 

using namespace std;

int main()
{
    int x = 2;
    switch(x)
    {
        case 1:
            cout << "This is case 1" << endl;
        case 2:
            cout << "This is case 2" << endl;
        case 3:
            cout << "This is case 3" << endl;
            break;
        default:
            cout << "This is default" << endl;
            break;
    }
    return 0;
}

在這個例子中,當變數x的值為2時,程序會輸出以下內容:

This is case 2
This is case 3

這是因為我們在case 2中沒有使用break語句,所以程序會繼續執行case 3的代碼。這種現象被稱為switch case穿透,我們可以通過在每個case語句中添加break語句來避免它。

四、switch casec語言

switch case語句最初是由C語言引入的,C++中的switch case語句支持了更多的數據類型,但其語法的基本結構和C語言是相同的。以下是一個C語言中的示例代碼:

#include
int main()
{
    int x;
    scanf("%d",&x);
    switch(x)
    {
        case 1:
            printf("This is case 1\n");
        case 2:
            printf("This is case 2\n");
        case 3:
            printf("This is case 3\n");
            break;
        default:
            printf("This is default");
            break;
    }
    return 0;
}

與C++版本的switch case語句相比,C語言中的switch case語句更加簡潔,但對變數的類型有所限制。在C語言中,變數必須是整型或字元型,而在C++中,變數可以是整型、字元型、枚舉型、浮點型和指針類型等等。

五、switch case出不來

在使用switch case語句時,有時候會遇到無法輸出正確結果的情況。這可能是因為我們沒有在case語句中匹配上變數或者有多個case語句匹配了同一個情況的緣故。以下是一個示例代碼:

#include 

using namespace std;

int main()
{
    int x = 2;
    switch(x)
    {
        case 1:
            cout << "This is case 1" << endl;
            break;
        case 2:
            cout << "This is case 2" << endl;
        case 3:
            cout << "This is case 3" << endl;
            break;
        default:
            cout << "This is default" << endl;
            break;
    }
    return 0;
}

在這個例子中,當變數x的值為2時,程序應該輸出以下內容:

This is case 2
This is case 3

但實際上程序只會輸出以下內容:

This is case 2
This is case 3

這是因為我們在case 2中沒有使用break語句,所以程序會穿透到下一個case語句並執行它們的代碼。為了避免這個問題,我們應該在case 2的末尾添加一個break語句,以結束這個case語句。

本文中,我們對C++中的switch case語句進行了詳細的闡述,從語法結構到實例代碼,希望讀者能夠通過本文對這個重要的流程式控制制語句有更深入的理解。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286927.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-23 13:06
下一篇 2024-12-23 13:06

相關推薦

  • Python3支持多行語句

    Python3是一種高級編程語言,開發人員可以輕鬆地使用該語言編寫簡單到複雜的代碼。其中Python3支持多行語句,方便開發人員編寫複雜的代碼,提高代碼的可讀性和可維護性。 一、使…

    編程 2025-04-29
  • Python for循環語句列印九九乘法表

    本篇文章將詳細介紹如何使用Python的for循環語句列印九九乘法表。列印九九乘法表是我們初學Python時經常練習的一項基礎操作,也是編寫Python程序的基本能力之一。 1、基…

    編程 2025-04-29
  • Python中while語句和for語句的區別

    while語句和for語句是Python中兩種常見的循環語句,它們都可以用於重複執行一段代碼。然而,它們的語法和適用場景有所不同。本文將從多個方面詳細闡述Python中while語…

    編程 2025-04-29
  • Python中自定義函數必須有return語句

    自定義函數是Python中最常見、最基本也是最重要的語句之一。在Python中,自定義函數必須有明確的返回值,即必須要有return語句。本篇文章將從以下幾個方面對此進行詳細闡述。…

    編程 2025-04-29
  • Python中升序排列的if語句

    本文將為大家介紹Python中升序排列的if語句。首先,我們來看一下如何實現。 if a > b: a, b = b, a if b > c: b, c = c, b …

    編程 2025-04-29
  • Python輸出語句用法介紹

    Python作為一種高級編程語言,為編程帶來了極大的便利和快捷。而輸出語句則是Python編程中不可缺少的一部分,它能夠讓我們看到程序運行的結果、判斷程序的正確性和優化程序等。本文…

    編程 2025-04-28
  • Python語句大全

    本文將詳細闡述Python語句大全,並給出代碼實例。 一、基本語句 Python基本語句包括賦值語句、條件語句、循環語句等,其中最基礎的是賦值語句。如下: a = 1 b = 2 …

    編程 2025-04-28
  • Python同步賦值語句的使用方法和注意事項

    Python同步賦值語句是Python中用來同時為多個變數賦值的一種方法。通過這種方式,可以很方便地同時為多個變數賦值,從而提高代碼的可讀性和編寫效率。下面從多個方面詳細介紹Pyt…

    編程 2025-04-28
  • Python導入模塊的語句

    Python是一種廣泛使用的高級編程語言,它支持面向對象的編程方法,同時還有很多功能強大的內置庫和第三方庫。為了使用這些庫,我們需要導入它們,本文將圍繞Python導入模塊的語句展…

    編程 2025-04-28
  • Python設置圖形填充顏色為綠色的語句

    圖形設計是計算機科學中一個重要的分支,而Python語言也是最受歡迎的圖形設計語言之一。Python憑藉其易用性和開源特性,贏得了很多開發者和程序員的青睞。本文將圍繞如何設置Pyt…

    編程 2025-04-27

發表回復

登錄後才能評論