Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    12

    [JAVA] Impossibile uscire dal ciclo While

    Salve a tutti sono alle prime armi con java, e sto intraprendendo ora il capitolo relativo alle classi. ho scritto una classe chiamata cassa, che dovrebbe simulare il pagamento di alcuni oggetti inserendo il tutto in due vettori di istanza.

    ho scritto una funzione che richiede i dati all'utente e li inizializza all'interno di questi. ho dato una grandezza di 15 al vettore, e ho impostato dopo l'inserimento di ogni prodotto una domanda che chiede se inserirne un altro o procedere al totale dello scontrino. il mio problema è che non riesco ad uscire dal ciclo ne con la prima ne con la seconda condizione. la prima chiede un No da tastiera in tmp e la seconda se non è più minore del vettore. continua a chiedermi di inserire prodotti finche' non mi restituisce l'indexoutofbounds. ho sbagliato a dichiarare i termini di fine ciclo? o ce qualcosa che mi sfugge sui metodi di classe e forse ho osato un pò nello scrivere?

    la funzione è questa :

    codice:
    public void acquista()
        {
          System.out.println("Inserire l'articolo che si desidera comprare");
          Scanner tastiera3 = new Scanner(System.in); 
          String tmp; 
          int i = 0; 
          do
          {
              System.out.println("Inserire il nome del prodotto");
              this.prodotto[i] = tastiera3.next();
              System.out.println("Inserire Il prezzo del prodotto:");
              this.costo[i] = tastiera3.nextFloat(); 
              i++;
              System.out.println("Inserire un nuovo acquisto? s/n");
              tmp = tastiera3.next();
          }while(tmp.equalsIgnoreCase("no")|| i < 15);  
          
        }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Chaosweb Visualizza il messaggio
    codice:
              tmp = tastiera3.next();
          }while(tmp.equalsIgnoreCase("no")|| i < 15);
    A rigor di logica, il ciclo dovrebbe ripetersi (condizione while true): se tmp non è "no" E se i è minore di 15
    Traduci questa espressione in codice.
    Ultima modifica di andbin; 18-09-2014 a 14:50
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    12
    Quote Originariamente inviata da andbin Visualizza il messaggio
    A rigor di logica, il ciclo dovrebbe ripetersi (condizione while true): se tmp non è "no" E se i è minore di 15
    Traduci questa espressione in codice.
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.