Esercizio

di il
3 risposte

Esercizio

Salve a tutti!
La mia intenzione era quella di esercitarmi con i cicli e i condizionali facendo un "programma" che stampasse il mio nome in greco (non conosco il greco, ho solo fatto copia incolla delle lettere). La compilazione pare che vada a buon fine ma come output non da niente. vi lascio il codice nella speranza che possiate spiegarmi l'errore! Grazie a tutti

import java.util.Scanner;
class writeYourName{
public static void main(String[] args){
Scanner nome = new Scanner(System.in);
System.out.println("Scrivi qui il tuo nome in minuscolo:");
String Nome = nome.nextLine();
for (int c=0; c==Nome.length(); c++){
switch(Nome.charAt(c)){
case 'a' :
System.out.println("a");
case 'b' :
System.out.println("ß");
case 'c' :
System.out.println("?");
case 'd' :
System.out.println("d");
case 'e' :
System.out.println("e");
case 'f' :
System.out.println("?");
case 'g' :
System.out.println("?");
case 'h' :
System.out.println("?");
case 'i' :
System.out.println("?");
case 'j' :
System.out.println("?");
case 'k' :
System.out.println("?");
case 'l' :
System.out.println("?");
case 'm' :
System.out.println("µ");
case 'n' :
System.out.println("?");
case 'o' :
System.out.println("?");
case 'p' :
System.out.println("p");
case 'q' :
System.out.println("q");
case 'r' :
System.out.println("?");
case 's' :
System.out.println("?");
case 't' :
System.out.println("?");
case 'u' :
System.out.println("?");
case 'v' :
System.out.println("?");
case 'w' :
System.out.println("?");
case 'x' :
System.out.println("?");
case 'y' :
System.out.println("e");
case 'z' :
System.out.println("?");
}
}
}

}

3 Risposte

  • Re: Esercizio

    Quercia! ha scritto:


    La compilazione pare che vada a buon fine ma come output non da niente. vi lascio il codice nella speranza che possiate spiegarmi l'errore!
    Il fatto è che come condizione del for hai scritto c == Nome.length ().
    Questa condizione ha poco senso in questo ambito e tra l'altro, se incrementi il contatore c, il massimo che puoi ottenere è di entrare la prima volta nel ciclo (se effettivamente c è pari alla lunghezza della stringa) ma di uscirne subito al primo incremento.

    Usa quindi c < Nome.length () come condizione del ciclo. Tra l'altro per convenzione i nomi delle variabili in Java dovrebbero iniziare per minuscola, quindi utilizza nome (cambia nome per lo scanner, ti fa solo confusione !).

    PS : Quello non è il modo corretto di utilizzare lo switch. Se aggiungi la modifica che ti ho detto il programma stamperà l'output, ma un tantino in più di quello che vorresti
  • Re: Esercizio

    Mmmmhh innanzi tutto grazie mille per la risposta!
    Poi vorrei chiederti: qual'è il modo migliore per fare un cosa del genere?
  • Re: Esercizio

    Allora, per quanto riguarda lo switch, dovresti guardarti come usare l'istruzione break.

    Per i caratteri greci, di default non dovrebbero essere disponibili, almeno non senza lavorare un po' con l'encoding.
    Ma non sono molto ferrato su questa parte, e non saprei neanche dirti se esistano metodi/librerie per fare le conversioni dei caratteri in automatico (mi viene solo in mente che alcuni font potrebbero fare al caso tuo, ma qui non stiamo parlando di componenti grafici) ...
Devi accedere o registrarti per scrivere nel forum
3 risposte