【问题标题】:Error in if method with multiple conditions具有多个条件的 if 方法出错
【发布时间】:2014-12-03 11:48:01
【问题描述】:

我正在尝试获取用户输入以使用

例如。我正在输入 1。这应该满足所有三个条件?

程序应向用户提供与输入问题相对应的错误。

如果未输入整数,则仅要求输入数字。如果数字是 24,它应该要求只输入这两个点之间的数字。

    while (length1 == Integer.MIN_VALUE) {
        System.out.print("Enter the Length of wall 1: ");
        if (scan.hasNextInt() && 1<=length1 && length1<=24) {
            length1 = scan.nextInt();
        }
        else if (length1<1 && 24<length1) {
            System.out.println("Error Error");
            System.out.println("Please only enter numbers between 1 and 24.");
            scan.next();
        } else {
            System.out.println("Error Error");
            System.out.println("Please only enter numbers.");
            scan.next();
        }
    }

【问题讨论】:

  • length1&lt;1 &amp;&amp; 24&lt;length1 那么,长度小于 1 而大于 24?您的意思是,即||
  • @tobias_k 啊,我应该把它改成||然后。是的,应该是或。这仍然给了我 else 语句错误。

标签: java if-statement conditional-statements


【解决方案1】:

除了一个错误的&amp;&amp;,应该先读nextInt。

while (true) {
    System.out.print("Enter the Length of wall 1: ");
    if (scan.hasNextInt()) {
        length1 = scan.nextInt();
        if (1 <= length1 && length1 <= 24) {
            break:
        }
        System.out.println("Error Error");
        System.out.println("Please only enter numbers between 1 and 24.");
    } else {
        System.out.println("Error Error");
        System.out.println("Please only enter numbers.");
        scan.next();
    }
}

【讨论】:

  • 干杯。我添加了另一个 scan.next();在“1 到 24 之间的数字”例外之后,因为如果我输入一个字符串然后第二次输入错误的数字,它将跳到下一个方法。
【解决方案2】:

使用以下代码:

while (length1 == Integer.MIN_VALUE) {
    System.out.print("Enter the Length of wall 1: ");
    if (scan.hasNextInt() && 1<=length1 && length1<=24) {
        length1 = scan.nextInt();
    }
    else if (length1<1 || 24<length1) {
        System.out.println("Error Error");
        System.out.println("Please only enter numbers between 1 and 24.");
        scan.next();
    } else {
        System.out.println("Error Error");
        System.out.println("Please only enter numbers.");
        scan.next();
    }
}

【讨论】:

    猜你喜欢
    • 2013-12-16
    • 2014-10-20
    • 2019-09-21
    • 2020-01-20
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    相关资源
    最近更新 更多