English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

语句switchC++

In questo articolo, imparerai a creare una switch statement in C++ (con esempi).

C++ switch statementEsegui una frase da più condizioni. È simile a una switch statement in C++.if-else-ifistruzioni.

Ma la struttura switch è generalmente più veloce rispetto a if ... else. Inoltre, la sintassi della struttura switch è più concisa ed easier da comprendere.

Sintassi della struttura switch...case in C++

switch (n)
{
    case constant1:
        // Se n è uguale a constant1, viene eseguito il codice;
        break;
    case constant2:
        // Se n è uguale a constant2, viene eseguito il codice;
        break;
        .
        .
        .
    default:
        // Se n non corrisponde a nessun constant, viene eseguito il codice
{}

Quando viene trovato un caso che corrisponde all'espressione case (constant1, constant2...constant), il controllo del programma viene trasferito al blocco di codice associato a quella case.

Nell'esempio di codice sopra, il valore ipotetico n è uguale a constant2. Il compilatore eseguirà il blocco di codice associato a constant2 fino alla fine del blocco switch o fino a quando incontraIstruzione breakFine.

La istruzione break viene utilizzata per prevenire che il codice entri nella prossima situazione.

Diagramma di flusso di switch...case

L'immagine sopra mostra come funziona la struttura switch e come vengono controllate le condizioni nei sottoparagrafi case.

Esempio: Esercizio di switch in C++

// Il programma utilizza la struttura switch per costruire un calcolatore semplice
#include <iostream>
using namespace std;
int main()
{
    char o;
    float num1, num2;
    cout << "Inserisci un operatore (+, -, *, /): ";
    cin >> o;
    cout << "Inserisci due numeri: ";
    cin >> num1 >> num2;
    
    switch (o) 
    {
        case '+':
            cout << num1 << " + " << num2 << " = " << num1+num2;
            break;
        case '-':
            cout << num1 << " - " << num2 << " = " << num1-num2;
            break;
        case '*':
            cout << num1 << " * " << num2 << " = " << num1*num2;
            break;
        case '/':
            cout << num1 << " / " << num2 << " = " << num1/num2;
            break;
        default:
            // Operatore non corrisponde a nessuno (+, -, *, /)
            cout << "Errore! Operatore non corretto";
            break;
    {}
    
    return 0;
{}

输出结果

输入一个运算符(+, -, *, /): +
-
输入两个操作数: 2.3
4.5
2.3 - 4.5 = -2.2

用户输入的 - 运算符存储在o变量中。而两个操作数2.3和4.5分别存储在变量num1和num2中。

然后,程序的控制跳转到

cout << num1 << " - " << num2 << " = " << num1-num2;

最后,break;语句结束了switch语句。

如果不使用break语句,则执行符合条件case后的所有case语句。