如果问题,Java布尔值

时间:2011-05-03 00:34:38

标签: java if-statement boolean

我正在制作彩票计划,我问他们基本上是否需要快速选票。他们的票数当然是随机的,因为它是一个快速选择,但前四个数字的范围从0-9,而第五个数字只有0-4。我试图让他们输入一个按钮,如“1”表示“否”或“2”表示是,如果他们不想要,那么它会跳过此步骤。但我正在做错误的布尔部分。有人可以帮帮我吗?

这是一个例子

System.out.println("Do you want Quick pick, 1 for no or 2 for yes?  The first four numbers is from a separate set of 0 to 9 and the fifth number is from a set of 0 to 4.");
QuickPick=keyboard.nextInt();
if((QuickPick==1)){
    return false;
}
if((QuickPick==2)){
    return true;
    int n = (int)(Math.random()*9+0);
System.out.println("Your QuickPick numbers are: " + kickerNumbers + kickerPowerball);
}

我还没有完成最后一个0-4的代码行,只是前四个数字,所以我没有忘记。

4 个答案:

答案 0 :(得分:2)

你的代码2的代码会立即执行return true;,然后就会结束方法(我假设这是在一个方法中)。你的其他行根本没有执行。

请考虑在此处使用switch()语句,这样可以更容易阅读:

switch(QuickPick)
{
   case 1:
      return false;
   case 2:
      int n = (int)(Math.random()*9+0); // Why is n here? You don't do anything with it?
      System.out.println("Your QuickPick numbers are: " + kickerNumbers + kickerPowerball);
      return true;
   default:
      // Uh oh - someone did something bad maybe just return false?
      return false; 
}

此外,您的代码2的代码肯定是错误的,您需要生成总共五个数字,前四个使用边界0-9,最后一个使用0-4。您将要使用Java的Random执行此操作(而不是Math.Random),例如:

Random rand = new Random();
int somethingRandom = rand.nextInt(10); 
// Will give you an integer value where 0 < val < 10
// You can call rand.nextInt as many times as you want

为了避免为你做功课 - 我会按照典型的CS教科书一行说“实施作为练习。”

答案 1 :(得分:1)

返回true后的代码将不会被执行 - 您需要将它放在return语句之前

答案 2 :(得分:0)

就像Marvo说的那样,你在if中放了一个支撑。

但你也有错误的逻辑。我不太确定你所使用的方法的目的是什么(返回一个布尔值)。但是除非用户键入3或42之类的内容,否则永远不会到达最后几行。

假设该方法应该a)询问用户是否想要快速选择b)计算快速选择,如果需要c)根据快速选择是否发生返回真/假,你应该:

public boolean doQuickPick()
{
    System.out.println("Do you want Quick pick, 1 for no or 2 for yes?  The first four numbers is from a separate set of 0 to 9 and the fifth number is from a set of 0 to 4.");
    QuickPick=keyboard.nextInt();
    if((QuickPick==1)){
        return false;
    }
    if((QuickPick==2)){
        int n = (int)(Math.random()*9+0);
        System.out.println("Your QuickPick numbers are: " + kickerNumbers + kickerPowerball);
        return true;
    }
}

作为一个单独的问题,将它分解为几种方法会更好。 boolean yesNoPrompt(String message)generateQuickPick()

你的问题有点不清楚,所以我担心我的帮助不会那么多。如果您有任何澄清/进一步的问题,请发布。

答案 3 :(得分:0)

if((QuickPick==2)){ return true; int n = (int)(Math.random()*9+0); System.out.println("Your QuickPick numbers are: " + kickerNumbers + kickerPowerball); }

在您问题的上述复制代码中,我发现您将在IDE中收到编译错误。您的IDE会在return语句下面的行中抱怨“无法访问的代码”。因此,您需要将return语句放在if块的末尾。