Ciao! qui è l'errore:
if ((insnome=="Carlo") || (insnome=="Autista"))
Tu usi l'operatore ==
Questo operatore, usato per i numeri va bene, controlla l'uguaglianza, invece, se usato per le variabili a oggetto come in questo caso (dato che le stringhe sono oggetti) questo operatore controlla se le due variabili puntano allo stesso oggetto (cioè controlla se c'è aliasing).
Per controllare l'uguaglianza di due oggetti si usa il metodo equals. come segue:
if ( insnome.equals("Carlo")||insnome.equals("Autista") )
Cmq se posso permettermi nel codice c'è qualche altra stranezza.. diciamo
Per quanto riguarda il libro che stai seguendo, io non lo conosco, non saprei dirti,
posso dirti che io ho imparato dal libro "big java" di Cay Horstmann, un ottimo libro.
Ma se tu sei già arrivato al capitolo 7 di quel libro, forse non vale la pena cambiare
Se hai altri dubbi o problemi, non esitare a chiedere! ciao!