Visualizzazione dei risultati da 1 a 9 su 9

Discussione: switch in java

  1. #1

    switch in java

    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?

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    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
    }

  3. #3
    quindi non posso usare lo switch, mi devo adattare con l'if?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    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...

  5. #5
    La stessa cosa vale per c++?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    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

  7. #7
    ok, grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    11

    switch in java

    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

  9. #9

    ..e' un po' inutile..

    puoi sempre fare una switch(true){case pippo.equals("a"):{}
    ...eccetera..

    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.