Pagina 4 di 5 primaprima ... 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 31 a 40 su 41
  1. #31
    try {
    // il try serve per "contenere" istruzioni che potrebbero dare
    // un errore, inserendo il codice all'interno l'errore viene messo
    // in una variabile e dopo, con il catch viene gestito in base al
    // valore della variabile di errore
    chiaro ma collegato con l'ultimo punto in basso...

    Reader in = new InputStreamReader(System.in);
    in.read(buf, 0, 30);
    // qui la faccenda si complica nel senso che l'oggetto "in" viene
    // definito come nuovo metodo della classe InputStreamReader e,
    // successivamente sull'oggetto viene fatta una read che mette in
    // "buf" i primi 30 caratteri, ovvero riempie l'array buf che
    // ha proprio 30 indici;
    ho capito a cosa serve, un po' meno come funzia
    :tongue:

    catch (Exception e) {
    // l'errore è stato precedentemente salvato in una variabile di nome
    // E; a questo punto, se ci sono errori, il System.out visualizza
    // la scritta Errore: numero_errore
    chiaro...ma nn capisco come funzia "catch". So che è una parola chiave e serve x dire quali eccezioni sono permesse (detto grezzamente) ma nn capisco come funzia. Sono lontano da studiare le clausole (almeno secondo il mio manuale) ma vorrei capire al 100% il tuo esempio.

    Cmq tranqui ora vado in cerca sul manualone...avra 700 pag x qualcosa...



  2. #32
    Allora, procediamo con ordine......

    per quanto riguarda il System.in non so dirti il perchè il tutto viene spezzato in due comandi, cmq credo xchè non si possa utilizzare l'oggetto padre direttamente.....
    (studio java da due giorni... datemi tempo )

    x quanto riguarda il try/catch.....

    in pratica consideriamo l'errore come una variabile.... cosa succede?

    Codice PHP:
    try {
      
    Exception e;
    }
    catch (
    Exception e) {
    blablablabla

    e ha un suo tipo che è un tipo eccezione, è un tipo a tutti gli effetti come lo sono INT e CHAR, SE E SOLO SE si verifica un errore viene creata la variabile e; a questo punto il catch "cattura" l'eccezione, in poche parole guarda se c'è una variabile di tipo Exception e se c'è ne legge il valore.
    Una volta nel corpo del catch la variabile viene trattata come una normalissima variabile (e può quindi essere stampata); per essere stampata però necessita di quel .toString() che converte in "lettere" il valore dell'eccezione....
    [Homepage] [Contattami]
    Powered by: Ubuntu - Debian - Gentoo
    Developing: Java - C++ - PHP

    [supersaibal]"Perchè tanto Debian è meglio"
    [/supersaibal]

  3. #33
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    Originariamente inviato da virusbye
    [CUT]
    Una volta nel corpo del catch la variabile viene trattata come una normalissima variabile (e può quindi essere stampata); per essere stampata però necessita di quel .toString() che converte in "lettere" il valore dell'eccezione....
    anche .getMessage() può andar bene, in questo caso si limita a scrivere il messaggio di errore (cosa un pò diversa dal .toString() dell'eccezione, fate una prova e vedrete che il .toString() è più completo).

    Vabbè era solo per far vedere che ho letto tutto... :gren:


    p.s.: trinityck, sono un misero principiante, altro che guru. Aspetta che si riaffaccino sul forum certi tipi, poi vedrai chi sono i guru.

    p.p.s.: (Virusbye ha fatto tutto questo in DUE GIORNI? Vabbè che viene da C++, ma qui siamo di fronte a un fenomeno!).

    Ciaps
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

  4. #34
    grazie a entrambi! mi avete fatto "avanzare di livello"!
    trinityck, sono un misero principiante, altro che guru
    ma va là

    (Virusbye ha fatto tutto questo in DUE GIORNI? Vabbè che viene da C++, ma qui siamo di fronte a un fenomeno!)
    in effetti...


  5. #35
    Stasera dovevo lavorare ed ho guardato un film!!!
    Ora dovrei andare a letto

    Ma mi sa che mi studio un altro po' di manuale e mi faccio bene bene le Classi, i pakage, le interfacce e la programmazione multitreadh....

    PS: grazie x i complimenti

    :metallica :metallica :metallica :metallica :metallica
    [Homepage] [Contattami]
    Powered by: Ubuntu - Debian - Gentoo
    Developing: Java - C++ - PHP

    [supersaibal]"Perchè tanto Debian è meglio"
    [/supersaibal]

  6. #36
    continuo qui dato che resto in tema

    virus, pab, mi potreste spiegare come funziona il metodo equalsIgnoreCase("X").

    Ad esempio...la classica opzione
    ("vuoi continuare? s/n")

    while (varstringa.equalsIgnorCase("s"))
    {
    continua etc etc.

    Ho capito come funziona ma nn riesco a "sfruttarne al meglio le potenzialità"; ad esempio nn riesco a farlo funzionare DOVE voglio...

    Mi potete fare un esempio (semplice ) con il while?

    ciauz

  7. #37
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    Con il while? Non mi viene in mente niente di speciale, e poi da come hai scritto il metodo mi sembra che tu abbia capito come funziona, o no?

    Confronta il contenuto delle due stringhe, senza tener conto di maiuscole e minuscole, tutto qua.

    codice:
    String a = new String("Pippo");
    
    String b = new String("pippo");
    
    
    int contaCaseDiversi = 0;
    
    
    while ((a.equalsIgnoreCase(b)==true) & (a.equals(b)==false){
    
        contaCaseDiversi++;
    }
    
    System.out.println("parole uguali, con differenti maiuscole e minuscole:" + contaCaseDiversi);
    Mi rendo conto che l'esempio può sembrare ridicolo, ma non mi veniva in mente proprio niente. Magari, se hai un problema su esercizio specifico, postalo, così vediamo.

    Ciauz
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

  8. #38
    mi sembra che tu abbia capito come funziona
    infatti è una cavolata ma nn riesco a implementarlo su questo listato

    in poche parole deve essere aggiunta una var stringa (esci) che permette all'utente di premere "e " per uscire.

    quindi

    while (esci.equalsIgnorCase("e"));
    ...
    ...
    ...
    ...
    S.o.p ("Premi \"e\" per uscire");
    esci = Keyboard.readString();

    probabilmente sbaglio a posizionare i due comandi quindi ti copio il listato originale (cretinata unica)senza la var e i 2 comandi sopraccitati :metallica



    //Programma che simula il classico gioco "indovina che numero ho pensato"

    import java.util.Random;
    import cs1.Keyboard;

    public class es3_7
    {

    public static void main (String[] args)
    {

    int numero, nutente, tent;
    String esci = "0";

    Random generator = new Random ();

    tent = 0;

    numero = Math.abs (generator.nextInt()) % 99 + 1;
    System.out.println ("Il computer ha pensato il numero! si incomincia...");
    nutente = 0;

    while (nutente != numero)
    {

    System.out.println();
    System.out.println ("Inserisci un numero da 1 a 100...");
    nutente = Keyboard.readInt();
    System.out.println();
    tent++;

    if (nutente > numero)
    System.out.println ("Errore, il numero pensato dalla CPU è MINORE");
    else
    {
    if (nutente < numero)
    System.out.println ("Errore, il numero pensato dalla CPU è MAGGIORE");
    else
    System.out.println ("Esatto, te si un fiol!!! Hai impiegato "+tent +" tentativi");
    }

    }
    System.out.println ("Grazie per aver giocato!");
    }
    }



  9. #39
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    beh, non so come funzioni di preciso questa classe Keyboard, che non è standard, comunque se alla pressione del tasto "e" devi uscire dal while, mentre alla pressione di altri tasti il ciclo continua, la condizione deve essere:

    codice:
    while (!esci.equalsIgnorCase("e")){
    
      // Istruzioni del gioco
    }
    
    // esci dal gioco
    p.s.: il punto esclamativo in java è la negazione, lo sapevi vero?
    Quindi la condizione è while NOT esci.equalsIgnoreCase("e")...
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

  10. #40
    giusto nn ci avevo pensato...

    la classe keyboard funziona un po' come il readln di Pascal

    writeln ("Inserisci numero");
    readln num;

    S.o.p ("inserisci numero");
    num = Keyboard.readInt();

    quindi dovrei fare così?


    while (!esci.equalsIgnorCase("e")){

    // Istruzioni del gioco
    } // fine while

    S.o.p ("premi "e" x uscire");
    esci = Keyboard.readInt();

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