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:
codice:
switch (type){
            case 'l': {
                          freq=freq+5;
                          System.out.println(freq);
            
                        break;
                      }
            case 'p': {
                           System.out.println(freq);
                      
                        break;
                      }
Ma mi da' un errore su switch (type){ dicendo che la variabile dovrebbe essere inizializzata, ma così ho fatto!

Riporto dunque il codice di tutto il programma:

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;
                      } 
          
       }
    
       
     
       
       
    }
}
Spero che qualcuno sia in grado di aiutarmi e di essermi spiegato bene.