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.
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)
Il programma è il seguente:
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
*/
}
}
}