Salve a tutti! In parole povere devo creare un programma che riceva un intero, maggiore di 0 rappresentante la capacità in kg di uno zaino, e riceva una serie di interi rappresentanti i pesi degli oggetti da inserirvi fino a che la somma dei pesi non eccede la capacità oppure viene ricevuto uno 0.
Al termine il programma deve mostrare la capacità massima e il peso totale degli oggetti contenuti.
Io l'ho impostato così:
import java.util.Scanner;
public class Esercizio3{
public static void main(String arg[]){
int capacità, totalepesi, nuovopeso;
Scanner tastiera=new Scanner(System.in);
totalepesi=0;
System.out.println("Ciao!");
System.out.println("Inserisci qui la capacità massima (in kg)");
System.out.println("che il tuo zaino può tollerare: ");
capacità=tastiera.nextInt();
System.out.println("Bene! Inserisci ora il primo oggetto nel tuo zaino");
System.out.println("Specificando il suo peso in kg!");
nuovopeso=tastiera.nextInt();
while(totalepesi<capacità&&nuovopeso!=0){
totalepesi+=nuovopeso;
System.out.println("C'è ancora spazio qui dentro!");
System.out.println("Puoi continuare ad inserire oggetti!");
nuovopeso=tastiera.nextInt();
}
System.out.println("Bene, abbiamo concluso! Ecco i risultati: ");
System.out.println("La capacità massima del tuo zaino (in kg) è di: " + capacità);
System.out.println("Il totale peso totale (in kg) che hai potuto inserire è: " + totalepesi);
}
}
L'output video che ho però è questo:
Ciao!
Inserisci qui la capacità massima (in kg)
che il tuo zaino può tollerare:
30
Bene! Inserisci ora il primo oggetto nel tuo zaino
Specificando il suo peso in kg!
29
C'è ancora spazio qui dentro!
Puoi continuare ad inserire oggetti!
1
C'è ancora spazio qui dentro!
Puoi continuare ad inserire oggetti!
1
Bene, abbiamo concluso! Ecco i risultati:
La capacità massima del tuo zaino (in kg) è di: 30
Il totale peso totale (in kg) che hai potuto inserire è: 30
Come potete vedere, il peso totale del contatore si ferma a 30 e mi stampa 30 (che è la capacità massima raggiunta, dato inserito ancor prima del ciclo while dall'utente), però le operazioni che mi fa fare di aggiunta, se ben vedete sono sempre maggiorate di uno!
CAP MAX 30
aggiungi oggetto: 29
aggiungi oggetto: 1
||| QUI DOVREBBE FERMARSI|||
invece:
aggiungi oggetto: 1
CAP MAX 30!
PESO TOTALE INSERITO 30!
Dove sto sbagliando? Perchè questa operazione in piu?
P.S.
HO APPENA FATTO QUEST'ALTRA PROVA:
Ciao!
Inserisci qui la capacità massima (in kg)
che il tuo zaino può tollerare:
30
Bene! Inserisci ora il primo oggetto nel tuo zaino
Specificando il suo peso in kg!
1
C'è ancora spazio qui dentro!
Puoi continuare ad inserire oggetti!
50
C'è ancora spazio qui dentro!
Puoi continuare ad inserire oggetti!
50
Bene, abbiamo concluso! Ecco i risultati:
La capacità massima del tuo zaino (in kg) è di: 30
Il totale peso totale (in kg) che hai potuto inserire è: 51
MBP-di-Fiore:uia Papasodero$
con questi dati.. avrò sbagliato il codice proprio... una mano?