Salve a tutti,
Frequento il terzo anno di un istituto tecnico industriale indirizzo informatico. Visto che le cose a scuola proseguono in maniera abbastanza lenta e vista la mia "curiosità", mi sono portato avanti con gli studi del linguaggio java; anche se la mia conoscenza a oggi è davvero scarsa.
Ho iniziato a seguire la playlist java di fcamuso, e mi sono divertito a sperimentare alcuni programmi. In particolare sto realizzando un convertitore valuta che inserita una cifra e, specificata se essa è in dollaro o euro, la converte in dollaro o euro.
Allora il problema sta nella struttura IF, che dovrebbe verificare se la cifra inserita è in euro o in dollaro. In particolare dopo aver inserito di che tipo è la cifra inserita mi da quest'errore.
Il programma è il seguente:codice:Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at ConvertitoreDollaroEuroEuroDollaro.main(ConvertitoreDollaroEuroEuroDollaro.java:35)
codice:import java.util.Scanner; public class ConvertitoreEuroDollaroDollaroEuro { //Programma che converte una cifra in euro o dollaro, in dollaro o euro. public static void main(String[] args) { // Si definiscono le variabili e le costanti: // Sono valori double perché possono contenere cifre con la virgola. double cifra; // La variabile cifra da convertire. double tasso_di_conversione_Euro_Dollaro = 1.3; // La costante tasso_di_conversione_Euro_Dollaro double tasso_di_conversione_Dollaro_Euro = 0.8; // La costante tasso_di_conversione_Dollaro_Euro double cifraconvertita; char moneta=1; char euro=1; char dollaro=1; //Si definisce il valore della cifra. Scanner inputNumScanner = new Scanner(System.in); System.out.println("Digita la cifra da convertire: "); cifra = inputNumScanner.nextDouble(); // FIN QUI FUNZIONA /*Tutti i metodi hanno problemi con l'IF.*/ //Metodo con Scanner char 1 Scanner scanner = new Scanner(System.in); System.out.println("La cifra da convertire è in euro o dollaro? "); moneta = scanner.next().charAt(0); /*Metodo if per lo scanner CHAR. Questo metodo prevede che se la parola moneta è uguale a euro verrà eseguita la conversione in dollaro, se la parola moneta è uguale a dollaro verrà eseguita la conversione in euro */ if (moneta==euro){ cifraconvertita=(cifra*tasso_di_conversione_Euro_Dollaro); System.out.println ("L'equivalente in dollaro è: " + cifraconvertita); } else if (moneta==dollaro) { cifraconvertita=(cifra*tasso_di_conversione_Dollaro_Euro); System.out.println("L'equivalente in euro è: " + cifraconvertita); } else { /*QUI VA INSERITO UN PERCORSO DI RIPETIZIONE, PERCHE' SIGNIFICA CHE COME TESTO NON E' STATO INSERITO NE' EURO NE' DOLLARO */ } } }

Rispondi quotando