Questo è il mio primo programma in Java, esso consiste nel traformare una stringa scritta in morse nella cifra corrispondente.
Il punto sarà rappresentato dal carattere "." e la linea dal carattere "_".
La sintassi è corretta ma c'è un errore di logica.
Il mio programma per capire che cifra è controlla il primo carattere della stringa con la funzione charAt(0) e se è il punto assegna alla variabile type il carattere "p" e se è linea, "l".
In qualunque caso conta quanti punti ci sono nella stringa se il primo è un punto e quante linee se la prima è una linea con questa funzione:
codice:for (i=0; i<=4; i++){ if (morse.charAt(i)=='x'){ //x puo essere il punto (.) o la linea (_) freq = freq++; } }
La stringa che gli ho dato io per verificare se il programma funziona è "...._" che sarebbe il numero 4.
Quindi dovrebbe uscire 4 visto che alla fine c'è la funzione:
Ma mi da' un errore su switch (type){ dicendo che la variabile dovrebbe essere inizializzata, ma così ho fatto!codice:switch (type){ case 'l': { freq=freq+5; System.out.println(freq); break; } case 'p': { System.out.println(freq); break; }
Riporto dunque il codice di tutto il programma:
Spero che qualcuno sia in grado di aiutarmi e di essermi spiegato bene.codice:import java.util.*; public class MorseTraductor{ public static void main(){ String morse; char type; int freq=0, i; morse = new String ("...._"); switch (morse.charAt(0)){ case '_': { type='l'; for (i=0; i<=4; i++){ if (morse.charAt(i)=='_'){ freq = freq++; } } break; } case '.': { type='p'; for (i=0; i<=4; i++){ if (morse.charAt(i)=='.'){ freq = freq++; } } break; } } switch (type){ case 'l': { freq=freq+5; System.out.println(freq); break; } case 'p': { System.out.println(freq); break; } } } }

Rispondi quotando