Esercizio - Completare un'attività di sfida usando istruzioni switch

Completato

Le sfide del codice rafforzano ciò che si è appreso e consentono di acquisire fiducia prima di continuare.

Sfida di conversione in istruzioni switch

In questa sfida, dovrai riscrivere un costrutto if-elseif-else come dichiarazione switch. Questa sfida dovrebbe permettere di conoscere i forti di forza e i punti di debolezza dell'istruzione switch rispetto a un'istruzione if-elseif-else. Buona Fortuna.

Richiesta di codice: riscrivere if-elseif-else usando un'istruzione switch

Si inizierà con il codice che usa un if-elseif-else costrutto per valutare i componenti di uno SKU di un prodotto. Lo SKU (unità di mantenimento delle scorte) viene formattato usando tre valori codificati: <product #>-<2-letter color code>-<size code>. Ad esempio, un valore SKU di 01-MN-L corrisponde a (camicia sudore)-(maroon)-(large) e il codice restituisce una descrizione che appare come "Product: Large Maroon Sweat shirt".

La sfida consiste nel convertire il codice dell'istruzione if in un'istruzione switch che ottiene lo stesso risultato del codice iniziale.

  1. Assicurarsi che in Visual Studio Code sia aperto un file Program.cs vuoto.

    Se necessario, aprire Visual Studio Code, quindi completare la procedura seguente per preparare un file Program.cs nell'editor:

    1. Nel menu File selezionare Apri cartella.

    2. Usare la finestra di dialogo Apri cartella per navigare fino alla cartella CsharpProjects e aprirla.

    3. Nel pannello EXPLORER di Visual Studio Code selezionare Program.cs.

    4. Nel menu Selezione di Visual Studio Code, selezionare Seleziona Tutto e quindi premere il tasto Cancella.

  2. Immettere il codice seguente nell'editor di Visual Studio Code:

    // SKU = Stock Keeping Unit. 
    // SKU value format: <product #>-<2-letter color code>-<size code>
    string sku = "01-MN-L";
    
    string[] product = sku.Split('-');
    
    string type = "";
    string color = "";
    string size = "";
    
    if (product[0] == "01")
    {
        type = "Sweat shirt";
    } else if (product[0] == "02")
    {
        type = "T-Shirt";
    } else if (product[0] == "03")
    {
        type = "Sweat pants";
    }
    else
    {
        type = "Other";
    }
    
    if (product[1] == "BL")
    {
        color = "Black";
    } else if (product[1] == "MN")
    {
        color = "Maroon";
    } else
    {
        color = "White";
    }
    
    if (product[2] == "S")
    {
        size = "Small";
    } else if (product[2] == "M")
    {
        size = "Medium";
    } else if (product[2] == "L")
    {
        size = "Large";
    } else
    {
        size = "One Size Fits All";
    }
    
    Console.WriteLine($"Product: {size} {color} {type}");
    
  3. Aggiornare il codice in modo da utilizzare un'istruzione switch invece del costrutto if-elseif-else.

  4. Verificare che l'output non sia stato modificato.

    Indipendentemente dal modo in cui si esegue questa operazione, il codice deve produrre l'output seguente:

    Product: Large Maroon Sweat shirt
    

Se ti blocchi e hai bisogno di vedere la soluzione o se completi con successo, prosegui per visualizzare la soluzione a questa sfida.