Mein Programm soll jemanden bitten, eine Seriennummer und den Preis eines Objekts einzugeben. HierWhile-Schleife überspringt den ersten Eingabescanner nach der ersten Iteration?
ist der Klassentreiber
import java.io.*;
import java.util.Scanner;
public class InventoryDriver {
public static void main(String[] args)throws IOException {
Inventory storeItem = new Inventory(" ", 1);
PrintWriter storeFile = new PrintWriter("StoreInventory.txt");
Scanner scan = new Scanner(System.in);
boolean running = true;
String itemNum = " ";
double originalPrice = 1;
while (running) {
System.out.println("Enter the item number or enter 0 when you are done.");
itemNum = scan.nextLine();
storeItem.setItemNum(itemNum);
storeFile.println(itemNum);
if(itemNum.equals("0")) break;
System.out.println("Enter the original price or enter 0 when you are done.");
originalPrice = scan.nextDouble();
storeItem.setOriginalPrice(originalPrice);
storeFile.println(originalPrice);
if(originalPrice == 0) break;
}
//create a scanner variable named myFile
Scanner myFile = new Scanner(new File("StoreInventory.txt"));
//Read my data from my file into the variablles
//itemNum = myFile.nextLine();
//originalPrice = myFile.nextDouble();
printSaleData(myFile, storeItem);
//Close the file
myFile.close();
storeFile.close();
}
}
Nach der Arbeit perfekt zum ersten Mal mit diesem Ausgang
Enter the item number or enter 0 when you are done.
input
Enter the original price or enter 0 when you are done.
input
Aber wenn die Schleife zurück geht, gibt es diesen
Enter the item number or enter 0 when you are done.
input
Enter the original price or enter 0 when you are done.
input
Enter the item number or enter 0 when you are done.
Enter the original price or enter 0 when you are done.
input
Was über meinen Code ändert sich die Schleife nach dem ersten gehen?
P.S. Selbst nachdem ich die Schleife unterbrochen habe, stoppt das gesamte Programm und ruft das Untermodul "printSaleData" nicht mehr zum Hauptmodul auf.
Können Sie bitte genau erklären, was Sie als Eingabe angegeben haben, um diese Ergebnisse zu erhalten? Was genau ist der Output, den Sie suchen? – Keara
Vielleicht ändern Sie 'itemNum = scan.nextLine();' in 'itemNum = scan.nextInt();'? – icarumbas