这里的第一篇帖子因为我很沮丧。 分配是创建一个程序,其中生成0-9的3个随机数,并且用户将输入3个数字。如果1个数字匹配 - 用户赢得10美元,如果2 - 100美元,如果3 - 1000美元,如果所有3和完美顺序 - $ 1000000。 出于某种原因,即使这些数字都不匹配,也会给我10美元,还有其他问题。
我知道必须有一个更简单的方法。这是我的第一个java课程,所以我还是初学者,但这是我提出的代码:
public class TheLottery
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("enter a number from 0-9");
int num1 = input.nextInt();
System.out.println("enter a second number from 0-9");
int num2 = input.nextInt();
System.out.println("enter a third number from 0-9");
int num3 = input.nextInt();
Random r=new Random();
int a1=r.nextInt(10);
Random r1=new Random();
int a2=r.nextInt(10);
Random r2=new Random();
int a3=r.nextInt(10);
System.out.println("The winning numbers are "+ a1 + a2 + a3);
boolean winning1=true;
boolean winning2=true;
boolean winning3=true;
if (num1 == a1 || num1 == a2 || num1 == a3)
winning1 = true;
else
winning2 = false;
if (num2 == a1 || num2 == a2 || num2 == a3)
winning2 = true;
else
winning2 = false;
if (num3 == a1 || num3 == a2 || num3 == a3)
winning3 = true;
else
winning3= false;
if(winning1==true && winning2==true && winning3==true && num1 == a1 && num2==a2 && num3==a3)
System.out.println("YOU'RE A MILLIONAIRE!");
else if (winning1==true && winning2==true && winning3==true)
System.out.println("You win 1,000 dollars!");
else if ((winning1==true && winning2==true) || (winning1==true && winning3==true) ||(winning2==true && winning3==true))
System.out.println("You win 100 dollars!");
else if (winning1==true || winning2==true || winning3==true)
System.out.println("You win 10 dollars!");
else
System.out.println("You lose!");
}
}
答案 0 :(得分:2)
@Adam S指出了第一个问题。你在第一次尝试检查时分配了错误的布尔变量。
如果从一开始就跟踪胜利,而不是哪些尝试成功,那将会更容易。
<Grid x:Name="templateRoot">
<Grid x:Name="templateChild" Background="Transparent"/>
</Grid>
答案 1 :(得分:0)
您在条件中将错误的变量指定为false。它应该是
if (num1 == a1 || num1 == a2 || num1 == a3)
winning1 = true;
else
winning1 = false;
您也声明了新的随机变量,但从未使用它们。但上面就是为什么即使你不匹配任何数字你也会获得10美元。
答案 2 :(得分:0)
由于winning1
默认为true,因此这行代码将始终为10美元:
if (num1 == a1 || num1 == a2 || num1 == a3)
winning1 = true;
else
winning2 = false;
winning1
永远不能等于假。另外,我会使用数组和for循环。例如:
Random r=new Random();
int[] winningNumbers = new int[2];
for (int i = 0; i<2; i++) winningNumbers[i] = r.nextInt(10);
Scanner input = new Scanner(System.in);
int[] numbers = new int[2];
for (int i = 0; i<2; i++) number[i] = input.nextInt();
我不打算编写所有代码,但你可以研究数组和循环。一旦你了解它们,尝试重做这个程序。