【问题标题】:if statement help in javajava中的if语句帮助
【发布时间】:2018-05-07 19:25:48
【问题描述】:

我的程序有两个输入 num1 和 num2。我想要我的 if 语句的条件,其中两个输入都不应为零,并且两个输入都应大于零但小于或等于 1000。while 循环应以输入 0 0 onl 中断。我应该有两个 if 语句吗?

    while (true)
    {
        Scanner input = new Scanner(System.in);
        int num1 = input.nextInt();
        int num2 = input.nextInt();

        if ((num1 <= 1000 && num2 <= 1000) && (num1 > 0 && num2 > 0))
        {
                 for (int num = num1; num <= num2; num++)
                        System.out.println(num);
        }
        else if (num1 == 0 && num2 == 0)
            break;
    }

【问题讨论】:

  • 您遇到错误了吗?
  • num&gt;0 暗示n!=0,所以你可以省略第一部分
  • if ((num1 > 0 && num1 0 && num2
  • 不考虑这些条件
  • 这里没有parameters。我为你标点并大写了这个难以理解的混乱。

标签: java if-statement


【解决方案1】:

这是多余的,因为您希望这些变量在它们之外的范围内 (1-1000):

(num1!=0||num2!=0)

只需指定预期范围:

if (num1 > 0 && num1 <= 1000 && num2 > 0 && num2 <= 1000) {
   ...
}

while 循环应该以输入 0 0 中断,我应该有两个 if 语句吗?

没有必要。实际问题是您的while 中没有使用Scanner.nextInput()。 所以它永远不会起作用。

【讨论】:

    【解决方案2】:

    你可以这样做:

    Scanner input = new Scanner(System.in);
    while (true) {
        int num1 = input.nextInt();
        int num2 = input.nextInt();
        if (num1|num2 == 0) break;
    
        if (num1<=1000 && num2<=1000 && (num1|num2)>0)
            // do your action
    }
    

    注意变量之间的单个| 以执行二进制或而不是逻辑一

    【讨论】:

    • 我应该使用 if 和 else if
    • @Unknownuser 由你决定,在这种情况下两者的工作方式相同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多