Java 如何制作“三选一”彩票计划?(爪哇)
第一篇文章在这里,因为我很沮丧。 任务是创建一个程序,其中生成3个0-9之间的随机数,用户将在其中输入3个数字。如果1个数字匹配-用户赢得10美元,如果2-100美元,如果3-1000美元,如果全部3个数字都匹配-100万美元。 出于某种原因,即使没有一个数字匹配,它也会给我10美元,还有其他问题 我知道一定有更简单的方法。这是我的第一门java课程,所以我还是一名初学者,但这是我想到的代码:Java 如何制作“三选一”彩票计划?(爪哇),java,Java,第一篇文章在这里,因为我很沮丧。 任务是创建一个程序,其中生成3个0-9之间的随机数,用户将在其中输入3个数字。如果1个数字匹配-用户赢得10美元,如果2-100美元,如果3-1000美元,如果全部3个数字都匹配-100万美元。 出于某种原因,即使没有一个数字匹配,它也会给我10美元,还有其他问题 我知道一定有更简单的方法。这是我的第一门java课程,所以我还是一名初学者,但这是我想到的代码: public class TheLottery { public static void ma
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!");
}
}
您在条件语句中将错误的变量赋值为false。应该是
if (num1 == a1 || num1 == a2 || num1 == a3)
winning1 = true;
else
winning1 = false;
您还声明了新的随机变量,但从未使用它们。但以上就是为什么即使你没有匹配任何数字,你也会被奖励10美元 在条件语句中将错误的变量赋值为false。应该是
if (num1 == a1 || num1 == a2 || num1 == a3)
winning1 = true;
else
winning1 = false;
您还声明了新的随机变量,但从未使用它们。但以上就是为什么即使你没有匹配任何数字,你也会被奖励10美元 第一个问题已由@Adam S指出。您在第一次尝试检查时分配了错误的布尔变量 如果你从一开始就记录胜负,而不是记录哪些尝试成功,那会更容易
int wins = 0;
if (num1 == a1 || num1 == a2 || num1 == a3)
wins++;
if (num2 == a1 || num2 == a2 || num2 == a3)
wins++;
if (num3 == a1 || num3 == a2 || num3 == a3)
wins++;
if(wins == 3)
if(num1 == a1 && num2==a2 && num3==a3)
System.out.println("YOU'RE A MILLIONAIRE!");
else
System.out.println("You win 1,000 dollars!");
else if (wins == 2)
System.out.println("You win 100 dollars!");
else if (wins == 1)
System.out.println("You win 10 dollars!");
else
System.out.println("You lose!");
@Adam S指出了第一个问题。您在第一次尝试检查时分配了错误的布尔变量 如果你从一开始就记录胜负,而不是记录哪些尝试成功,那会更容易
int wins = 0;
if (num1 == a1 || num1 == a2 || num1 == a3)
wins++;
if (num2 == a1 || num2 == a2 || num2 == a3)
wins++;
if (num3 == a1 || num3 == a2 || num3 == a3)
wins++;
if(wins == 3)
if(num1 == a1 && num2==a2 && num3==a3)
System.out.println("YOU'RE A MILLIONAIRE!");
else
System.out.println("You win 1,000 dollars!");
else if (wins == 2)
System.out.println("You win 100 dollars!");
else if (wins == 1)
System.out.println("You win 10 dollars!");
else
System.out.println("You lose!");
由于
winning1
默认为true,因此由于这行代码,您将始终拥有$10:
if (num1 == a1 || num1 == a2 || num1 == a3)
winning1 = true;
else
winning2 = false;
winning 1
决不能等于false。此外,我将使用数组和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();
Random r=new Random();
int[]winningNumbers=新int[2];
对于(int i=0;i因为winning1
默认为true,由于这行代码,您将始终拥有$10:
if (num1 == a1 || num1 == a2 || num1 == a3)
winning1 = true;
else
winning2 = false;
winning1
永远不能等于false。此外,我会使用数组和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();
Random r=new Random();
int[]winningNumbers=新int[2];
对于(int i=0;我为什么要在结尾重复所有逻辑?if(winning1==true&&winning2==true&&winning3==true&&num1==a1&&num2==a2&&num3==a3)
另外:winning1
等都是布尔值。你可以说if(winning1&&winning2…
最后但并非最不重要的一点:winning1==a1=(num1==a1&&124m1==a2)
;看起来您需要学习使用调试器。请自己解决一些问题。如果之后仍然存在问题,请随时回答更具体的问题。为什么要在结尾重复所有逻辑?If(winning1==true&&winning2==true&&winning3==true&&num1==a1&&num2==a2&&num3==a3)
另外:winning1
等都是布尔值。你可以说if(winning1和&winning2…
最后但并非最不重要:winning1=(num1==a1 | | num1==a2 | | num1==a3)
;看起来您需要学习使用调试器。请自便。如果您以后仍有问题,请随时提出更具体的问题。这已经非常有帮助了。谢谢!没想到会有这么快的响应!没问题,但正如@clinomaniac所建议的,使用调试器将极大地帮助您解决问题这类问题=)已经帮了很多忙谢谢!没想到会有这么快的响应!没问题,但正如@clinomaniac所建议的,使用调试器将极大地帮助您解决这类问题=)