解釋看你的代碼是如何工作的,最明智的地方,打破可能是輸入產品名稱後。這意味着你不能存儲停止產品...我已經把它作爲大寫(如果你不關心案例,你可以使用equalsIgnoreCase)。
事情是這樣的:
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]);
}
這也避免了外循環的需要。如果你想問問每件產品(這可能會在一段時間後變得煩人),那麼你可以在請求雙倍數的情況下進行檢查並提示。無論你想
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
}
}
使用'break'來循環出來。 – yogidilip
你需要break語句嗎? https://www.tutorialspoint.com/java/java_break_statement.htm – user3685285
你有兩個循環,你想停止哪一個循環? – Adam