ciao a tutti
posto qui il mio problema perche si tratta di uno switch anche questo.
Dato che gli switch in java si possono usare solo con i tipi primitivi char byte short e int ho costruito uno switch che associa ad ogni intero passato per argomento in linea di comando un diverso nome del mese
il codice qui sotto serve per dare il numero dei gg di un mese di un dato anno scrivendo anche il nome del mese a seconda del valore intero del mese passato in fase di esecuzione del programma
lo posto perche mi dice che c'è un errore, che manca un punto e virgola ma non capisco dove
se qualcuno mi vuole dare un parere lo ringrazio
il codice è questo:
class GiorniDelMese{
public static void main(String[] args){
//variabili di default nel caso non si passi nulla nella linea
int mese = 2;
int anno = 2003;
// prende i dati dalla linea di comando e inizializza le variabili
if(args.length > 0)
mese = Integer.parseInt(args[0]);
if(args.length > 1)
anno = Integer.parseInt(args[1]);
/*metodo che non funzia sul quale chiedo il vostro illuminato parere*/
// dovrebbe servire per associare ad ogni intero il nome del mese
// corrispondente
String nome(mese){
String nMese;
switch(mese){
case 1:
nMese= " Gennaio";
break;
case 2:
nMese= " Febbraio";
break;
case 3:
nMese= " Marzo";
break;
case 4:
nMese= " Aprile";
break;
case 5:
nMese= " Maggio";
break;
case 6:
nMese= " Giugno";
break;
case 7:
nMese= " Luglio";
break;
case 8:
nMese= " agosto";
break;
case 9:
nMese= " Settembre";
break;
case 10:
nMese= " Ottobre";
break;
case 11:
nMese= " Novembre";
break;
case 12:
nMese= " Dicembre";
}
return nMese;
}
System.out.println(" : " + nome(mese) + " / " + anno + " ha " + conta(mese, anno) + " giorni ");
// nella chiamata del metodo non c'è bisogno dell'identificatore
}
static int conta(int mese, int anno){
int gg = 0;
switch(mese){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
gg = 31;
break;
case 4:
case 6:
case 9:
case 11:
gg = 30;
break;
case 2:
if(anno % 4 == 0)
gg = 29;
else
gg = 28;
}
return gg;
}
}
grazie mille a tutti