Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Reale_Augello
    Guest

    [Java] Domanda su switch

    Salve a tutti,

    ho provato ad applicare il costrutto switch a un oggetto String, ma la cosa non mi riesce.
    Ho fatto una cosa del tipo:

    String str="Salve!";
    switch(str) {
    case "Salve!":
    bla bla bla
    break;
    case "Ciao!":
    trallalero
    break;
    }

    Non ricordo bene l'errore, ma se non erro il compilatore mi diceva che solo dati di tipo char potevano essere sottoposti all'azione di switch. Il che mi sembra strano...

    Qualcuno sa darmi qualche dritta ?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    il costrutto switch lo puoi usare solamente con tipi di dati interi (quindi, int e char).


    Ciao.
    "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

  3. #3
    Reale_Augello
    Guest

    Sul...

    ... serio ? Ma è una limitazione assurda !


  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non è per niente una limitazione assurda: Java deriva da C++, e in C/C++ la switch funziona così. (In quanto tutto può essere visto come intero, o quasi).

    Comunque guardati la documentazione:

    Documentazione del costrutto switch()
    "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

  5. #5
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    non direi
    in tutti i linguaggi di programmazione che io sappia lo switch funziona su dati primitivi, una stringa è un oggetto classe String
    dire alla virtual machine switch (i) significa if (i == 1) e lo capisce, ma se usi una stringa if (i == "1") non ritorna mai true, si deve fare if (i.equals("1")) che confronta il contenuto al posto della locazione di i

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da floyd
    non direi
    in tutti i linguaggi di programmazione che io sappia lo switch funziona su dati primitivi, una stringa è un oggetto classe String
    dire alla virtual machine switch (i) significa if (i == 1) e lo capisce, ma se usi una stringa if (i == "1") non ritorna mai true, si deve fare if (i.equals("1")) che confronta il contenuto al posto della locazione di i
    In QBasic esiste un costrutto simile: SELECT CASE. Questo lo puoi usare anche con le stringhe...:gren:
    "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
    Reale_Augello
    Guest

    Beh...

    ... allora cosa mi dite di JavaScript ?
    OK, non è un linguaggio programmazione vero e proprio, ma consente lo switch di stringhe (suppongo proceda a una conversione di tipi...)...

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.