为什么只把数字作为输入?

时间:2017-05-20 10:29:19

标签: java

此代码仅显示输出

  

输入要添加的项目的名称输入项目的价格

虽然在将double作为输入之前应该使用名称。

newMenu = new Scanner(System.in);

System.out.println("Please select on of the menuItems \n 1. Premium \n 2. Discount \n 3. Standard ");
FileWriter file = new FileWriter(f,true);

//Create an instance of the PrintWriter class using output as the argument
PrintWriter abc = new PrintWriter(file);

if(newMenu.nextInt()==1){
    abc.println("Premium");
    System.out.println("Enter Name of the item you want to add");
    String name=newMenu.nextLine();
    abc.println(m1.getNoOfItems()+1+" "+name);

    System.out.println("Enter the price of item");
    double price=newMenu.nextDouble();
    abc.println(price);
    m1.setNoOfItems(m1.getNoOfItems()+1);               
}

2 个答案:

答案 0 :(得分:1)

而不是:

if(newMenu.nextInt() == 1){

您可以使用newMenu.nextLine()代替:

if (Integer.parseInt(newMenu.nextLine()) == 1) {
  

虽然在取双倍输入之前应该取名字。

你没有得到这种情况,因为你不消耗所有的行。

答案 1 :(得分:0)

您需要在{"vm1":{"firstName":"test first name"},"vm2":{"lastName":"test last name"}}之后使用\n

.nextInt()