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. Come potete vedere ho tentato di risolvere il problema con due metodi:
Nel primo metodo se il carattere moneta è uguale a euro esegui .... altrimenti se è uguale a dollaro esegui... altrimenti ripeti lo scanner char. In questo metodo il problema è che mi dice che la variabile euro non è stata inizializzata.
Nel secondo metodo ho tentanto con string, se la string inizia con eu esegui .... altrimenti se inizia con do esegui... altrimenti ripeti lo scanner string. In questo metodo il problema è che dopo aver inserito la parola il programma termina. Ho riunito tutti i metodo che ho sperimentato in questo codice, spero che riuscirete ad aiutarmi e magari a farmi capire dove è lo sbaglio ve ne sarei grato. Spero di essere stato abbastanza chiaro. Vi chiedo di non soffermarvi sui nomi inseriti alle varie variabili, visto che si tratta solo di un test
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. Come potete vedere ho tentato di risolvere il problema con due metodi:
Nel primo metodo se il carattere moneta è uguale a euro esegui .... altrimenti se è uguale a dollaro esegui... altrimenti ripeti lo scanner char. In questo metodo il problema è che mi dice che la variabile euro non è stata inizializzata.
Nel secondo metodo ho tentanto con string, se la string inizia con eu esegui .... altrimenti se inizia con do esegui... altrimenti ripeti lo scanner string. In questo metodo il problema è che dopo aver inserito la parola il programma termina. Ho riunito tutti i metodo che ho sperimentato in questo codice, spero che riuscirete ad aiutarmi e magari a farmi capire dove è lo sbaglio ve ne sarei grato. Spero di essere stato abbastanza chiaro. Vi chiedo di non soffermarvi sui nomi inseriti alle varie variabili, visto che si tratta solo di un test
Java:
import java.util.Scanner;
public class ConvertitoreDollaroEuroEuroDollaro {
//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;
String tipo;
char moneta;
char euro;
char dollaro;
//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 con Scanner char 2
Scanner inputCharScanner = new Scanner(System.in);
System.out.println("La cifra da convertire è in euro o dollaro? ");
moneta = (char) inputCharScanner.nextInt();
/*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);
} else if (moneta==dollaro) {
cifraconvertita=(cifra*tasso_di_conversione_Dollaro_Euro);
} else {
/*QUI VA INSERITO UN PERCORSO DI RIPETIZIONE, PERCHE' SIGNIFICA CHE COME TESTO
NON E' STATO INSERITO NE' EURO NE' DOLLARO
*/
}
// Metodo Scanner string
Scanner scan = new Scanner(System.in);
System.out.println("La cifra inserita è in euro o dollaro? ");
tipo = scan.nextLine();
// Altro Scanner String
Scanner a = new Scanner(System.in);
System.out.println("La cifra inserita è in euro o dollaro? ");
tipo = a.nextLine();
/* QUESTO IF PREVEDE CHE SE LA PAROLA INIZIA CON EU VERRA' FATTA LA CONVERSIONE IN DOLLARO
ALTRIMENTI SE INIZIA CON DO VERRA' FATTA IN EURO. IL PROBLEMA E' CHE DOPO AVER INSERITO
DI CHE TIPO E' LA CIFRA IL PROGRAMMA TERMINA.
*/
if (tipo.startsWith("eu")){
cifraconvertita=(cifra*tasso_di_conversione_Euro_Dollaro);
} else if (tipo.startsWith("do")) {
cifraconvertita=(cifra*tasso_di_conversione_Dollaro_Euro);
} else {
/*QUI VA INSERITO UN PERCORSO DI RIPETIZIONE, PERCHE' SIGNIFICA CHE COME TESTO
NON E' STATO INSERITO NE' EURO NE' DOLLARO
*/
}
}
}