我正在学习Java,至少我正在努力。 现在我做了一个应用程序,你需要猜测用math.random生成的随机数。
以下是代码:
import java.util.Scanner;
public class var {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
//var definitie
int player;
int rnummer;
rnummer = (int) (Math.random() * 50 + 1);
System.out.println("Raad het nummer!");
player = keyboard.nextInt();
System.out.println(rnummer);
//goed geraden check
if (player == rnummer) {
System.out.println("Helaas, dat is niet juist.");
player = keyboard.nextInt();
}
System.out.println("Goed geraden!");
}
}
现在有一个问题,每次你猜它是对的,你不能猜错。 我无法弄清楚问题..它必须非常简单。
答案 0 :(得分:6)
你需要理解这个陈述:
if (player == rnummer)
{
System.out.println("Helaas, dat is niet juist.");
player = keyboard.nextInt();
}
这意味着:
if player is equals to rnummer
then
print "Helaas, dat is niet juist."
ask a value and store it in player
and read the next line
但你想要的是
if player is NOT equals to rnummer
then
print "Helaas, dat is niet juist."
ask a value and store it in player
check again the condition
这就是我们所说的循环。这与if
类似,但仅在条件为假时退出语句。
while(player != rnummer)
{
System.out.println("Helaas, dat is niet juist.");
player = keyboard.nextInt();
}
如果条件为真,if
仅执行一次块语句。
while
将执行该块,直到条件为假。
注意:由于循环仅在条件为假时结束(不完全为真,某些关键字可以退出,但这是另一个主题),最终可能会出现无限循环,这意味着条件永远不会假的。
while(true){
//Statement
}
// Unreachable code
答案 1 :(得分:2)
您只需将if
语句替换为while
循环:
while (player != rnummer) {
System.out.println("Helaas, dat is niet juist.");
player = keyboard.nextInt();
}
在自然语言中可以转换为"虽然您的猜测与随机数不同,但请继续尝试"。
如果只使用if,{}括号内的代码只有在条件为真时才会执行,但之后程序将继续执行代码中System.out.println("Goed geraden!");
的下一条指令。