Come faccio ad usare lo switch con le stringhe in java?
Devo usare il metodo equals?se si come?
Inoltre con il tipo di dato char non si possono fare controlli?
Come faccio ad usare lo switch con le stringhe in java?
Devo usare il metodo equals?se si come?
Inoltre con il tipo di dato char non si possono fare controlli?
switch verifica tipo di dati come int long char
con le stringhe
if (s.equals("A")) {
// codice
} else if (s.equals("B")) {
// codice
} else if (s.equals("C")) {
// codice
}
quindi non posso usare lo switch, mi devo adattare con l'if?
Lo switch puoi usarlo solo su char e interi.
Al massimo puoi assegnare un valore ad ogni stringa, ma la trovo pessima, come soluzione. Cerca un altro costrutto più idoneo.
Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...
La stessa cosa vale per c++?
Credo proprio di sì.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
ok, grazie
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
puoi sempre fare una switch(true){case pippo.equals("a"):{}
...eccetera..
}