调用扫描程序用户在java中输入的次数

时间:2016-10-01 17:43:06

标签: java for-loop java.util.scanner

这是我的第一个java项目之一,我正在尝试制作一个迷你计算器,现在我正在努力进行添加。

我想要它做的就是它会询问用户他们想要添加多少个数字,然后输入所有数字后,java代码必须输入所有输入的数字。

这是迄今为止尚无法解决的补充部分:

    private static void Addition() { //I already added the Scanner plugin
        System.out.println("How many numbers would you like to add?");

        Scanner adds = new Scanner(System.in);
        int addsput = adds.nextInt();

        Scanner numa = new Scanner(System.in);

        for(int addloop=1; addloop>addsput; addloop++) {

            int numaput = adds.nextInt();
            //somehow I want to get all the numbers

        }

    //Here I want to add all the numbers they typed
    }   

所以我希望你明白这个主意。任何帮助都会很棒,因为我一直在寻找大约一个小时来解决这个问题。感谢。

2 个答案:

答案 0 :(得分:1)

您有两个选项,可以将值读取到数组中,也可以在读取值时查找总和。

您只需要一个Scanner个对象,而您的for循环存在一些问题:

private static void addition() {
    Scanner input = new Scanner(System.in);

    System.out.println("How many numbers would you like to add?");
    int amountNumbers = input.nextInt();

    int sum = 0;
    for (int counter = 0; counter < amountNumbers; counter++) {
        sum += input.nextInt();
    }

    System.out.println("Sum: " + sum);
}

使用数组:

private static void addition() {
    Scanner input = new Scanner(System.in);

    System.out.println("How many numbers would you like to add?");
    int[] numbers = new int[input.nextInt()];

    for (int index = 0; index < numbers.length; index++) {
        numbers[index] = input.nextInt();
    }

    int sum = 0;
    for (int index = 0; index < numbers.length; index++) {
        sum += numbers[index];
    }

    System.out.println("Sum: " + sum);
}

以下是使用Java 8中的IntStream执行此操作的更高级方法:

private static void addition() {
    Scanner input = new Scanner(System.in);

    System.out.println("How many numbers would you like to add?");
    int amountNumbers = input.nextInt();

    int sum = IntStream.generate(input::nextInt)
                       .limit(amountNumbers)
                       .sum();

    System.out.println("Sum: " + sum);
}

答案 1 :(得分:0)

以下是我建议改变的一些事项: 您只需要1个扫描仪。至于添加总和,如果在循环之前创建变量,则可以在输入的同一行中添加总和。

你还有&lt;标志与&gt;混淆标志。您希望循环一直运行,直到变量addloop增加了用户想要输入要添加的数字的次数。因此,循环应该继续,直到达到用户输入的数字,而不是相反。

SELECT P.[ProductName] as ProductName, P.PurchaseQty, S.SalteQTY, P.purchaseQTY-S.SalteQTY as ClosingQty

  FROM [PURCHASEDATA] P LEFT OUTER JOIN [SALEDATA] S ON P.ProductName=S.ProductName