Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] errore sintassi switch

    Salve a tutti.

    Ho un errore riccorrrente nel mio codice all'altezza dello switch. Però non riesco a capire da che cosa sia causato.
    Sono un newbie in materia quindi è probabile che is aun problema da niente, ma al momento non saprei proprio da dove partire per risolverlo.
    Posto un pò di codece e il risultato del debuger.
    Spero che qulacuno mi possa aiutare.
    Grazie comunque.

    codice:
    /**********convert the token in string*************************/
      String field = fieldsToken.nextToken();
      			
    /****************call settings card*****************************/
      			
      switch(i) {
      	case 1: 
     	case 3:
      	case 5:
      	case 7:{double tmpNum = new double(field);
      		carta.setNumero(tmpNum);
      		break;} 	
      	case 0:
      	case 2:
      	case 4: {carta.setSeme(field);
      		break;}  			
      }

    codice:
    --------------------Configuration: <Default>--------------------
    G:\doc\Java\DB\mazzoDB.java:103: '[' expected
                                    case 7:{double tmpNum = new double(field);
                                                                      ^
    G:\doc\Java\DB\mazzoDB.java:103: illegal start of expression
                                    case 7:{double tmpNum = new double(field);
                                                                             ^
    2 errors

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    L'errore è nelle parentesi graffe. Sostituisci in questo modo:
    codice:
    switch(i) {
      	case 1: 
     	case 3:
      	case 5:
      	case 7:
               Double tmpNum = new Double(field);
      	   carta.setNumero(tmpNum);
               break;
      	case 0:
      	case 2:
      	case 4:
               carta.setSeme(field);
      	   break;
    }
    Non servono le parentesi graffe: il blocco di codice compreso fra un case ed il relativo break è di per se un blocco.

    Domanda... sei sicuro di quella dichiarazione Double tmpNumero = new Double(field)? Se devi passare un oggetto allora devi mettere le Maiuscole, altrimenti elimina completamente quella riga e passa semplicemente la variabile field.

    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
    devo passare la variabile tmpNumero cha casta la stringa ottenuta dal tokenizer in Double e la passa ad un metodo set.

    Grazie millr per il tuo aiuto.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    D'accordo... non avevo guardato il codice sopra.
    Se il metodo set accetta un oggetto, allora il codice che ti ho postato sopra va bene, altrimenti se accetta un tipo di dato primitivo double bisogna passare per il Double.parseDouble().


    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

  5. #5
    perfetto.
    Grazie mille!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.