Visualizzazione dei risultati da 1 a 2 su 2

Discussione: data

  1. #1

    data

    Salve a tutti,
    sono (molto) nuova in java, devo scrivere un programma che chiede all'utente una data nel formato gg-mm-aaaa e verifica che questa sia corretta:
    se non è nel formato richiesto viene segnalato un errore
    se è nel formato richiesto ma non corrisponde a una data corretta, errore
    se corretta si stampa il nome del mese in formato testuale.

    Ho deciso di usare uno switch, dite che va bene?
    Questa è l'"idea":

    codice:
    public class LeggiData {      
    public static void main(String[] args) {  	
    
    System.out.print("Immetti una data nel formato gg-mm-aaaa:"); 	
    String str = Input.readString(); 
    int g;  //int compreso tra 1-31 
    int m; //int compreso tra 1-12 
    int a; 	 	
    
    switch (str) { 	
    case 'str≠(g+"-" +m+"-"+a): System.out.println("Errore di formato");  	    
    break; 
    	
    case 'g>31': System.out.println("Data sconosciuta");  	    
    break; 
    
    case 'm>12': System.out.println("Data sconosciuta");  	    
    break;  
       
    case 'data corretta': System.out.println("Gennaio");  	    
    break; 	 	
    }      
    } }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Direi proprio di no.
    Il costrutto switch di Java è fatto così:

    codice:
    switch( espressione ) {
       case val1: istruzioni; break;
       case val2: istruzioni; break;
       ...
       default: istruzioni; break;
    }
    Dove:

    1) espressione: è un'espressione intera
    2) val1, val2, ecc sono costanti intere.

    Da Java 7 il costrutto switch accetta anche espressioni stringa (per dei confronti fra stringhe).

    Quello che stai cercando di fare tu non sta in piedi nemmeno con le stampelle: non puoi usare un costrutto switch per verificare che un'espressione soddisfi un'altra espressione espressa tra singoli apici (che si usano per identificare costanti carattere, poi).

    Credo che dovrai ripassare un po' il funzionamento del costrutto switch e rivedere un po' la tua idea.


    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

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.