我正在制作彩票计划,我问他们基本上是否需要快速选票。他们的票数当然是随机的,因为它是一个快速选择,但前四个数字的范围从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的代码行,只是前四个数字,所以我没有忘记。
答案 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块的末尾。