/** * Questo programma legge il voto di uno studente dalla tastiera. Se il voto è * compreso tra 18 e 26, visualizza "Puoi verbalizzare", se è minore di 18 visualizza * "Non puoi verbalizzare". Se il voto è maggiore di 26 chiede se lo studente si accontenta * di un 26 prima di decidere. */ import java.util.Scanner; public class P3OraleEsameV2 { public static void main(String[] args) { System.out.print("Immetti voto: "); Scanner kbd = new Scanner(System.in); int voto = kbd.nextInt(); boolean puoiVerbalizzare = false; if (voto >= 18 && voto <= 26) { puoiVerbalizzare = true; } else { if (voto > 26) { System.out.print("Ti accontenti di un 26 ? Scrive S per sì: "); // Qui vorremmo leggere un solo carattere, ma purtroppo non c'è nessun metodo // nextChar. Leggiamo allora una intera parola con next(). String risposta = kbd.next(); // In alternativa, possiamo usare nextLine() al posto di next(), ma questo // genera un problema, discusso in dettaglio a pag. 69 del libro di testo, nel // riquadro "Problemi comuni con i metodi next e nextLine". Per cui, se vogliamo // usare nextLine, dobbiamo usarlo due volte. // kbd.nextLine() // String risposta = kbd.nextLine() // Qui controlliamo solo se il primo carattere è S. Tutti gli altri casi // li consideramo equivalenti a N. if (risposta.charAt(0) == 'S') { puoiVerbalizzare = true; } } } if (puoiVerbalizzare) System.out.println("Puoi verbalizzare"); else System.out.println("Non puoi verbalizare"); kbd.close(); } }