Esercizio - Implementare l'operatore condizionale
- 7 minuti
Si supponga di dover determinare rapidamente se l'acquisto di un cliente è idoneo per uno sconto promozionale. I dettagli della promozione prevedono che quando il valore dell'acquisto è superiore a 1000 euro, l'acquisto può beneficiare di uno sconto di 100 euro. Se l'importo dell'acquisto è pari o inferiore a 1000 euro, l'acquisto può beneficiare di uno sconto di 50 euro.
Anche se si potrebbe certamente usare il costrutto di diramazione if ... elseif ... else per esprimere questa regola di business, è preferibile usare l'operatore condizionale per valutare il diritto allo sconto promozionale. L'operatore condizionale usa un formato compatto che salva alcune righe di codice e rende verosimilmente più chiara la finalità del codice.
Che cos'è l'operatore condizionale?
L'operatore ?: valuta un'espressione booleana e restituisce uno dei due risultati a seconda che l'espressione booleana restituisca true o false. L'operatore condizionale viene comunemente definito operatore condizionale ternario.
Ecco il formato di base:
<evaluate this condition> ? <if condition is true, return this value> : <if condition is false, return this value>
Soffermarsi qualche istante a considerare come applicare l'operatore condizionale allo scenario dello sconto promozionale. L'obiettivo è visualizzare un messaggio al cliente che mostra la percentuale di sconto. L'importo dello sconto sarà basato sul fatto che abbiano speso più di 1000 euro per il loro acquisto.
Aggiungere codice che usa un operatore condizionale
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:
- Scegliere Apri cartella dal menu File.
- Usare la finestra di dialogo Apri cartella per passare a e quindi aprire la cartella CsharpProjects .
- Nel pannello EXPLORER di Visual Studio Code selezionare Program.cs.
- Nel menu Selezione di Visual Studio Code selezionare Seleziona tutto e quindi premere CANC.
Digitare il codice seguente nel pannello Editor di Visual Studio Code.
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");Scegliere Salva dal menu File di Visual Studio Code.
Il file Program.cs deve essere salvato prima di compilare o eseguire il codice.
Nel pannello EXPLORER, per aprire un terminale nel percorso della cartella TestProject, fare clic con il pulsante destro del mouse su TestProject e quindi scegliere Apri nel terminale integrato.
Dovrebbe aprirsi un pannello del Terminale che visualizza un prompt dei comandi. Il prompt dei comandi deve visualizzare il percorso della cartella TestProject.
Al prompt dei comandi del terminale, per eseguire il codice, digitare dotnet run e quindi premere INVIO.
Quando si esegue il codice, viene visualizzato l'output seguente:
Discount: 100
Usare l'operatore condizionale inline
È possibile compattare ulteriormente questo codice eliminando la variabile temporanea discount.
Aggiornare il codice nell'editor di Visual Studio Code come indicato di seguito:
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");Scegliere Salva dal menu File di Visual Studio Code.
Al prompt dei comandi del terminale, per eseguire il codice, digitare dotnet run e quindi premere INVIO.
Si noti che l'output è lo stesso.
Soffermarsi qualche istante a esaminare l'istruzione
Console.WriteLine()aggiornata.Si noti che è necessario racchiudere tra parentesi l'intera istruzione dell'operatore condizionale. Le parentesi garantiscono che il runtime riconosca la finalità, ovvero visualizzare il risultato condizionale invece del risultato della valutazione della condizione (saleAmount > 1000).
Nota
Anche se questo particolare esempio è compatto e mostra le operazioni che è possibile eseguire, risulta di difficile lettura. Non è sempre consigliabile combinare le righe di codice, in particolare se questo influisce sulla leggibilità complessiva del codice. Questa valutazione è spesso soggettiva.
Riepilogo
Tenere presente quanto segue per l'operatore condizionale:
- È possibile usare l'operatore condizionale per ridurre le dimensioni del codice, ma è necessario assicurarsi che il codice risultante sia facilmente leggibile.
- È possibile usare l'operatore condizionale quando è necessario restituire un valore basato su una condizione binaria. Il codice restituirà la prima opzione quando la condizione restituisce true e la seconda opzione quando la condizione restituisce false.