Betrachtet man, wie Ihr Code funktioniert, die vernünftigste Ort ist wahrscheinlich zu brechen, nachdem sie einen Produktnamen eingeben. Dies würde bedeuten, dass Sie kein STOP-Produkt speichern können ... Ich habe das als GROSSBUCHSTABEN gelassen (Sie können equalsIgnoreCase verwenden, wenn Sie sich nicht für den Fall interessieren).
Etwas wie folgt aus:
for(int i=0; i<=numberOfItems; i++)
{
System.out.println("Enter product name (or STOP to stop)");
String tmpProduct = input.nextLine();
//trim to avoid whitespace
if ("STOP".equals(tmpProduct.trim())) {
break; //we stop the loop here
}
//they didn't type STOP, guess they wanted a product.
productName[i]=tmpProduct;
System.out.println("Enter price of product");
productPrice[i]=input.nextDouble();
System.out.printf("%s,%n,%.2f",productName[i],productPrice[i]);
}
Dies vermeidet auch die Notwendigkeit für die äußere Schleife. Wenn Sie lieber nach jedem Produkt fragen (das könnte nach einer Weile ärgerlich werden), dann können Sie den Scheck einreichen und nach dem Anfordern des Doppelten fragen.
for(int i=0; i<=numberOfItems; i++)
{
System.out.println("Enter product name");
//they didn't type STOP, guess they wanted a product.
productName[i]=input.nextLine();
System.out.println("Enter price of product");
productPrice[i]=input.nextDouble();
System.out.printf("%s,%n,%.2f",productName[i],productPrice[i]);
System.out.println("type STOP to stop or anything else to continue");
String tmp = input.nextLine();
//trim to avoid whitespace problems
if ("STOP".equals(tmp.trim())) {
break; //we stop the loop here
}
}
Verwenden 'break' wo immer Sie aus der Schleife kommen wollen. – yogidilip
Brauchen Sie die break-Anweisung? https://www.tutorialspoint.com/java/java_break_statement.htm – user3685285
Sie haben zwei Schleifen, welche möchten Sie stoppen? – Adam