【发布时间】:2014-09-17 09:20:11
【问题描述】:
编写一个程序,生成一个介于 1 到 100 之间的随机数,并将其保存为秘密数字。然后程序将检查用户是否可以猜出密码。用户可以继续猜数字,直到找到数字或输入0,程序将终止。
用户每次猜测,程序都会报告如下:
- 太高或太低(超过 30 关)
- 高或低(相差 10 到 30 个点)
- 有点高或有点低(低于 10 分)
如果密码是 74 并且用户输入 26,程序将打印“Way too Low”。如果用户然后说 65,那么程序将打印“A Little Low
我被 if 语句卡住了,也许我的结构不正确。我不确定。
import java.util.Scanner;
public class SecretNumber {
public static void main(String[] args){
int random1, answer;
Scanner input = new Scanner(System.in);
random1 = (int)(Math.random()*10);
System.out.print(random1);
System.out.println("Guess the number");
answer = input.nextInt();
while(answer != 0) {
if (answer > (random1 + 30)){
System.out.println("Way to high");
}
else if ( answer > ( random1 - 30)){
System.out.println("Way to low");
}
else if (answer > random1 + 10 && answer < random1 + 30){
System.out.println("High");
}
else if (answer > random1 - 10 && answer < random1 - 30 ){
System.out.println("Low");
}
else if ( answer > random1 + 10){
System.out.println("A little high");
}
else if ( answer < random1 - 10){
System.out.println("A little low");
}
else if ( answer == random1){
System.out.println("That is correct");
System.exit(0);
}
else {
System.out.println("Guess the number");
answer = input.nextInt();
}
}
}
}
【问题讨论】:
-
你有什么问题?怎么没有达到你的预期?
-
请注意
random1 = (int)(Math.random()*10);会给你0 <= random1 < 10 -
好吧,它卡在第一个 if 语句上,要么在一个永无止境的循环中说高或低
标签: java