我遇到了在Java中存儲多個輸入值的問題。首先,我使用ArrayList來存儲用戶輸入的輸入數量。然後我想在收集所有輸入之後進行計算。無法在Java中存儲多個輸入值
我的程序允許用戶輸入1之間5個不同的值,以5 1等於100, 2等於200, 3等於300, 4是等於400, 5是等於至500
我建立一個數組來存儲這些值
double numberArray[] = {100, 200, 300, 400, 500};
當用戶輸入1,該ArrayList將存儲所述第一輸入值。 當用戶輸入2時,ArrayList將存儲第二個輸入值,依此類推。 當用戶點擊「n」時,它將退出並添加。這意味着它將增加100和200一起,輸出將等於300
然而,問題是,當用戶保持輸入的數量,我的程序將僅在總的第一輸入的加在一起也就是100 + 100即使我輸入2作爲第二個輸入。
這裏是我的代碼:
import java.util.*;
public class Total{
static int total;
public static void main(String[] args) {
int numberArray[] = {100, 200, 300, 400, 500};
List<String> list = new ArrayList<String>();
Scanner input = new Scanner(System.in);
do{
System.out.println("Add item? Please enter \"y\" or \"n\"");
if (input.next().startsWith("y")){
System.out.println("Enter item number: ");
list.add(input.next());
if (list.contains("1")){
int item1 = numberArray[0];
total = total + item1;
} else if(list.contains("2")){
int item2 = numberArray[1];
total = total + item2;
} else if(list.contains("3")){
int item3 = numberArray[2];
total = total + item3;
} else if(list.contains("4")){
int item4 = numberArray[3];
total = total + item4;
} else {
System.out.println("You have entered invalid item number!");
break;
}
}else{
System.out.println("You have entered all the item(s).");
break;
}
} while(true);
System.out.println(The total is: " + total);
}
}
類變量'total'應該是靜態的,否則你的代碼不會編譯 – Jayy
你的代碼有多個問題,但最直接的是你正在從'input'中讀取兩次,就像MadProgrammer指出的那樣,您檢測輸入哪個選項的方式根本上是有缺陷的。看到你的錯誤在哪裏很簡單,只需在每一步中追蹤列表中的內容即可。在列表中放入'1'後,它將始終在列表中,即使是第二次。在這種情況下,後者如果被稱爲如何聲明呢? –
您應該有錯誤,無法從靜態'main'方法引用非靜態變量'total'。 – Alex