/* * Esercizio 5 del 17/10/2022. * Mostra l'uso delle costanti con nome (anche se non è necessario usarle). */ import java.util.Scanner; public class Esercizio5 { public static void main(String[] args) { /* * La parola "final" prima del tipo vuol dire che la variabile non * può essere modificata (si chiama in questo caso *costante*). Usare le * costanti invece di mettere direttamente i numeri nel codice del programma * lo rende più chiaro. È convenzione scrivere i nomi delle costanti tutte in * maiuscolo, separando le parole che la compongono con un simbolo di * sottolineature. */ final double COSTO_MENU_COMPLETO = 8.00; final double COSTO_MENU_PRIMO_SECONDO = 6.50; final double COSTO_PRIMO = 3.50; final double COSTO_SECONDO = 4.00; final double COSTO_CONTORNO = 2.50; String risposta; Scanner tastiera = new Scanner(System.in); System.out.println("Calcolo del prezzo del pranzo"); System.out.print("Hai preso il primo? "); risposta = tastiera.next(); /* * Questa riga controlla se la risposta è sì. Nel tal caso, la variabile * primo sarà true. Qualunque altra risposta verrà interpretata come no, * perché la variabile primo assumerà il valore false. Il metodo toLowerCase() * della classe String converte la string in minuscolo prima di confrontarla con * sì. In questo modo l'utente può anche scrivere Sì con la S maiuscola, o SÌ * entrambe le lettere maiuscole. */ boolean primo = risposta.toLowerCase().equals("sì"); System.out.print("Hai preso il secondo? "); risposta = tastiera.next(); boolean secondo = risposta.toLowerCase().equals("sì"); System.out.print("Hai preso il contorno? "); /* * Avremmo potuto fare come con primo e secondo, ovvero mettere il * dato immesso all'utente nella variabile risposta e controllare se * è uguale a sì. Tuttavia, per provare una cosa diversa, facciamo tutto * in un unico assegnamento. */ boolean contorno = tastiera.next().toLowerCase().equals("sì"); if (primo && secondo && contorno) System.out.println("Hai preso il menù completo che cosa € " + COSTO_MENU_COMPLETO); else if (primo && secondo) System.out.println("Hai preso il menù primo e secondo che costa € " + COSTO_MENU_PRIMO_SECONDO); else { double conto = 0.0; if (primo) conto += COSTO_PRIMO; if (secondo) conto += COSTO_SECONDO; if (contorno) conto += COSTO_CONTORNO; System.out.println("Conto € " + conto); } tastiera.close(); } }