扫描仪类仅适用于1个数字

时间:2017-09-07 09:05:51

标签: java java.util.scanner

我正在学习java,并且无法弄清楚为什么扫描器类只用于1号整数,而不是用于我的java代码中的另一个数字。例如,如果我从用户那里得到2的响应,它就不会什么都有。 我认为我完美地制作了PlaceOrder和SellItem方法,但是从用户那里获取2或3或4的输入并没有显示任何结果。我在Item类中创建了一个PlaceOrder方法,并通过用户输入为2来调用该方法。虽然在输入时按2,但它没有显示所需的结果。

主要课程

import java.util.Scanner;

public class ItemTest{

public static void main(String [] args) {

    Item product = new Item("Wrench",15,15%10+15,"Craftsmen Tool",20,5,7);
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter a Action");
    System.out.println("1:Show Item \n" + "2.Sell an Item\n" + "3.Place an Order \n" + "4.Quit");

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

        System.out.println(product.toString());
    }
    if (scan.nextInt()==2) {

        System.out.println(product.SellItem());
    }
    if (scan.nextInt()==3) {

        System.out.println(product.PlaceOrder());
    }
    if (scan.nextInt()==4) {

        System.out.println("Thankyou for your visit");
    }
} 

1 个答案:

答案 0 :(得分:1)

尝试改变这一点:

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

    System.out.println(product.toString());
}

if (scan.nextInt()==2) {

    System.out.println(product.SellItem());
}
if (scan.nextInt()==3) {

    System.out.println(product.PlaceOrder());
}
if (scan.nextInt()==4) {

    System.out.println("Thankyou for your visit");
}

int choice = scan.nextInt();
if ( choice ==1) {

    System.out.println(product.toString());
} else if ( choice ==2) {

    System.out.println(product.SellItem());
} else if (choice==3) {

    System.out.println(product.PlaceOrder());
} else if (choice==4) {

    System.out.println("Thankyou for your visit");
}

否则,每个如果期望/等待另一个输入。