如何选择3号彩票计划? (Java)的

时间:2018-04-19 23:20:58

标签: java

这里的第一篇帖子因为我很沮丧。 分配是创建一个程序,其中生成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!");
    }
}

3 个答案:

答案 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();

我不打算编写所有代码,但你可以研究数组和循环。一旦你了解它们,尝试重做这个程序。