检查输入值并打印一些东西

时间:2016-09-30 20:28:45

标签: java while-loop

我在下面发布原始问题。我得到了大部分权利,但我不知道如何检查输入的第一个数字是否为负并打印“输入错误”。任何人都可以帮助我。

编写一个程序,首先在一行输入上读取一系列正整数,然后计算并打印这些整数的乘积。接受并乘以整数,直到用户输入小于1的整数。此最终数字不是产品的一部分。然后,程序打印产品。如果第一个输入的数字是负数或0,程序必须打印“输入错误。”并立即终止。

接下来,程序确定并打印产品的主要因子分解,按递增顺序列出因子。如果素数不是产品的因子,则它不得出现在因子分解中。样品运行如下。请注意,如果素数的幂是1,则答案中必须出现1。

这是我的代码:

    Scanner input = new Scanner(System.in);
    System.out.println("Enter integers:");
    int product = 1;
    int num = 0;
    while (input.hasNextInt()) {
        num = input.nextInt();
        if (num < 1)
            break;
        product *= num;
    }
    System.out.println("Product: " + product);
    int f = 2;
    while (product >= f) {
        int count = 0;
        while (product % f == 0) {
            count++;
            product = product / f;
        }
        if (count > 0)
            System.out.print(f + "^" + count + " ");
        f++;
    }
}

2 个答案:

答案 0 :(得分:0)

没有给你所有的答案......跟踪哪一个是第一个。如果是第一个,请检查它的值(看它是否为0或小于0),如果是,则打印错误并结束程序。

答案 1 :(得分:0)

在循环开始读取输入之前,读取第一个整数并执行逻辑

   int product = 1;
int num = 0;
  num = input.nextInt();
   if(num <1) {
      System.out.println("bad number");
       return;
      }
  product*=num;
while (input.hasNextInt()) {
    num = input.nextInt();
    if (num < 1)
        break;
    product *= num;
}