Java:两位数彩票
我正在编写这个彩票代码,但却经历了无休止的运行。我希望能指出代码中可能存在的问题以及如何着手纠正它。非常感谢。问题是“生成两位数的彩票。数字中的两位数是不同的。(提示:生成第一位数。使用循环连续生成第二位数,直到它与第一位数不同。)Java:两位数彩票,java,Java,我正在编写这个彩票代码,但却经历了无休止的运行。我希望能指出代码中可能存在的问题以及如何着手纠正它。非常感谢。问题是“生成两位数的彩票。数字中的两位数是不同的。(提示:生成第一位数。使用循环连续生成第二位数,直到它与第一位数不同。) 你想让他们与众不同,所以改变吧 while (lotterydigit2!=lotterydigit1){ lotterydigit2 = lottery%10; } 到 lotterydigit2
你想让他们与众不同,所以改变吧
while (lotterydigit2!=lotterydigit1){
lotterydigit2 = lottery%10;
}
到
lotterydigit2始终具有相同的值。如果彩票%10在第一次运行时是!=到lotterydigit1,它将不会退出循环,因为您没有更改任何内容。问题的答案在您的提示中: 使用循环连续生成第二个数字,直到它与第一个数字不同
public class Lottery1 {
public static void main(String[] args) {
// Create Scanner
Scanner s = new Scanner(System.in);
//generate 2 digit random lottery number
int lottery = (int) (Math.random() * 100);
// TODO code application logic here
//generate first and second digit of lottery
int lotterydigit1 = lottery / 10;
int lotterydigit2 = lottery % 10;
while (lotterydigit2 != lotterydigit1) {
lotterydigit2 = lottery % 10;
}
//prompt user for guess digits
System.out.print("Enter two Digit number:");
int guess = s.nextInt();
int guessdigit1 = guess / 10;
int guessdigit2 = guess % 10;
// compare lottery and
if (guessdigit1 == lotterydigit1 && guessdigit2 == lotterydigit2) {
System.out.println("You just won $10,0000");
} else if (guessdigit1 == lotterydigit2 && guessdigit2 == lotterydigit1) {
System.out.println("You have won $5,000");
} else if (guessdigit1 == lotterydigit1
|| guessdigit1 == lotterydigit2
|| guessdigit2 == lotterydigit1
|| guessdigit2 == lotterydigit2) {
System.out.println("You have won $1,000");
} else {
System.out.println("You have not won anything");
}
System.out.println("lottery number is" + " " + lottery + " and your guess is" + guess);
}
}
并且在循环中不会生成任何内容:
while (lotterydigit2 != lotterydigit1) {
lotterydigit2 = lottery % 10;
}
你也有错误的条件-“直到它是不同的”意思是“当他们是相同的”
我建议分别生成两个数字:
int lotterydigit1 = (int) (Math.random() * 10);
int lotterydigit2 = (int) (Math.random() * 10);
while (lotterydigit2 == lotterydigit1) {
lotterydigit2 = (int) (Math.random() * 10);
}
尝试将
lotket=(int)(Math.random()*100);
放在while循环中-你永远不会更改它的设置!你的代码中有编译错误,正确格式化它也会有帮助while(lotterydigit2!=lotterydigit1)
当然也希望while(lotterydigit2==lotterydigit1)
?如果它们相似,您只想更改lotterydigit2
。
while (lotterydigit2 != lotterydigit1) {
lotterydigit2 = lottery % 10;
}
int lotterydigit1 = (int) (Math.random() * 10);
int lotterydigit2 = (int) (Math.random() * 10);
while (lotterydigit2 == lotterydigit1) {
lotterydigit2 = (int) (Math.random() * 10);
}