如何将用户输入存储在数组中,然后打印出来?

时间:2019-12-12 23:14:07

标签: java

我是一名初学者程序员,我正在申请一些练习。

您输入预算,然后添加费用(名称,金额) 它会减去并告诉您当前的预算。

我想做到这一点,以便您可以在每次执行后看到所有费用。

我尝试过创建存储支出名称的循环,然后打印它们。 但是我做错了:/。

对不起,我的英语不好,我来自克罗地亚!

这是一些入门的丑陋代码。

 int length = 0;
 String[] listOfNames = new String[length]; 

 boolean active = true;
 int budget = 0; 
 Scanner input = new Scanner(System.in); //user input

 System.out.println("Enter current budget in HRK");
 int enteredAmount = input.nextInt(); //user input for budget

 budget = enteredAmount;



 while(active)
 {
     System.out.println("Current budget is " + budget +  " HRK");
     System.out.println("Enter expense name and amount");

     System.out.println("Name: ");
     String name = input.next(); //name of expense


     for(int i=0; i<listOfNames.length;i++){ //adds entered expense names to array

     listOfNames[i] = name;
     length++;              
     }


     System.out.println("Amount: ");

     int enteredAmount1 = input.nextInt();

     budget -= enteredAmount1; // subtracts the budget from the users input

     System.out.println("Expense: " + name + ", Amount: " + enteredAmount1); // prints final result

     for(int j=0; j<listOfNames.length; j++) // prints stored strings in array
     {
       System.out.println(listOfNames[j]);
     }


 }

} }

1 个答案:

答案 0 :(得分:0)

这里是问题:

  1. 您将listOfNames的长度从零开始。

    int length = 0;
    String[] listOfNames = new String[length]; 
    

这就是为什么for循环永远不会运行的原因。

  1. 此外,在Java中无法更改数组的大小。 为了存储可变数量的输入,我建议使用ArrayList,可以调整其大小。

    ArrayList<String> listOfNames = new ArrayList<String>();
    

listOfNames添加内容:

    String name = input.next();
    listOfNames.add(name);

ArrayList的缺点是它的效率不如数组,但这对您的程序而言并不重要。

这里是documentation和另一个helpful website,用于ArrayList。