【问题标题】:Trouble with my conditions statement我的条件声明有问题
【发布时间】:2014-07-29 12:50:29
【问题描述】:

我正在尝试创建一个条件,即通过三个数字检查用户。我似乎无法弄清楚这一点,我想确保用户只选择这 3 个数字之一。

System.out.println("How big do you want your pizza? Enter a size of: 10, 12, or 14 inches.");
size = scan.nextInt();
while( size != 10 )  <=====(**PROBLEM**)
{
    System.out.println("That is not a valid size. Choose again.");
    size = scan.nextInt();
}

【问题讨论】:

  • 到底是什么问题?
  • 在 Java 中,您可以使用 &amp;&amp; 作为逻辑 and
  • 您只使用一个条件检查所有三个使用 ||运算符。
  • @Raj 我尝试使用 ||对于所有三个,它都不起作用

标签: java while-loop conditional-statements


【解决方案1】:

在 java 中,你可以像使用 'and' 一样使用 '&&'。 在你的情况下,你可以这样做:

size = scan.nextInt();
while( size != 10 && size != 12 && size != 13 )  <=====(**PROBLEM**)
{
    System.out.println("That is not a valid size. Choose again.");
    size = scan.nextInt();
}

【讨论】:

    【解决方案2】:
    int[] allowedSize = {10, 12, 14};
    
    if (in_array(size, allowedSize) == false)
    {
       // Size is not good
    }
    
    
    public static boolean in_array(Object needle, Object[] haystack) {
            return (Arrays.binarySearch(haystack, needle) >= 0);
        }
    

    【讨论】:

    • 呃,我只知道基础。我很感激这一点
    【解决方案3】:

    你想继续循环直到你得到 10、12 或 14,所以使用

    while (size != 10 && size != 12 && size != 14) {
        ...
    }
    

    its equivalent

    while (!(size == 10 || size == 12 || size == 14)) {
        ...
    }
    

    【讨论】:

    • 拜托,条件森林?^^
    • 我使用了第一个选项
    猜你喜欢
    • 2018-02-25
    • 2015-12-03
    • 2023-01-16
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多