Java 我点击";“运行”;它一直在加载,没有运行或停止的迹象
这是我的代码,当我尝试运行它时,它基本上会被卡在这里: 欢迎来到Java博士。 工作目录是U:\Downloads 玩猜谜游戏 如何将此问题修复到可以正常运行程序而不会出现上述错误的位置?我看到两个错误Java 我点击";“运行”;它一直在加载,没有运行或停止的迹象,java,Java,这是我的代码,当我尝试运行它时,它基本上会被卡在这里: 欢迎来到Java博士。 工作目录是U:\Downloads 玩猜谜游戏 如何将此问题修复到可以正常运行程序而不会出现上述错误的位置?我看到两个错误 import java.util.Random; import java.util.Scanner; public class GuessingGame { public static void main (String [] args) { Random rand = new
import java.util.Random;
import java.util.Scanner;
public class GuessingGame {
public static void main (String [] args) {
Random rand = new Random ();
int numberToGuess = rand.nextInt (100);
int numberOfTries = 0;
Scanner input = new Scanner (System.in);
int guess;
boolean win = false;
while (win == false); {
System.out.println("Guess a number between 1 and 100:");
guess = input.nextInt ();
numberOfTries++;
if (guess == numberToGuess) {
win = true;
}
else if (guess > numberToGuess) {
System.out.println ("You guessed too low mate!");
}
else if (guess > numberToGuess) {
System.out.println ("You guessed too high mate!") ;
System.out.println("You win!!");
System.out.println("The random number WAS!" + numberToGuess);
System.out.println("It took you a wopping" + numberOfTries + "TRIES!");
}
}
}
}
应该是
while (win == false); {
else if (guess > numberToGuess) {
System.out.println ("You guessed too low mate!");
}
(或而(!win){
),因为分号创建了一个空循环体。和
while (win == false) {
应该是
while (win == false); {
else if (guess > numberToGuess) {
System.out.println ("You guessed too low mate!");
}
else if(猜测
或者您在更高版本上有两个测试(这种方法很有意义)。我看到两个bug
import java.util.Random;
import java.util.Scanner;
public class GuessingGame {
public static void main (String [] args) {
Random rand = new Random ();
int numberToGuess = rand.nextInt (100);
int numberOfTries = 0;
Scanner input = new Scanner (System.in);
int guess;
boolean win = false;
while (win == false); {
System.out.println("Guess a number between 1 and 100:");
guess = input.nextInt ();
numberOfTries++;
if (guess == numberToGuess) {
win = true;
}
else if (guess > numberToGuess) {
System.out.println ("You guessed too low mate!");
}
else if (guess > numberToGuess) {
System.out.println ("You guessed too high mate!") ;
System.out.println("You win!!");
System.out.println("The random number WAS!" + numberToGuess);
System.out.println("It took you a wopping" + numberOfTries + "TRIES!");
}
}
}
}
应该是
while (win == false); {
else if (guess > numberToGuess) {
System.out.println ("You guessed too low mate!");
}
(或而(!win){
),因为分号创建了一个空循环体。和
while (win == false) {
应该是
while (win == false); {
else if (guess > numberToGuess) {
System.out.println ("You guessed too low mate!");
}
else if(猜测
或者你有两个更高级别的测试(这种方式很有意义)。详细说明Elliott的答案:
else if (guess < numberToGuess) {
System.out.println ("You guessed too low mate!");
}
相当于
while (win == false); {
// etc. etc. etc.
}
这和
while (win == false)
; // empty statement, does nothing
{
// The body, which really isn't part of the while loop any more
}
由于
win
从false
开始,这将继续循环,什么也不做,直到win
以某种方式更改为true
,这当然永远不会发生。这就是程序陷入困境的原因——它处于无限循环中。详细说明Elliott的答案:
else if (guess < numberToGuess) {
System.out.println ("You guessed too low mate!");
}
相当于
while (win == false); {
// etc. etc. etc.
}
这和
while (win == false)
; // empty statement, does nothing
{
// The body, which really isn't part of the while loop any more
}
由于
win
从false
开始,这将继续循环,什么也不做,直到win
以某种方式更改为true
,这当然永远不会发生。这就是为什么程序被卡住了——它处于无限循环中。修改while
阻塞为执行while
阻塞为fo追随
while (win == false) {
}
{
// The part that isn't really part of the loop
}
do{
System.out.println(“猜一个介于1和100之间的数字:”);
guess=input.nextInt();
numberofthries++;
如果(猜测==数字猜测){
赢=真;
}
else if(猜测<数字猜测){
System.out.println(“你猜得太低了,伙计!”);
}
否则如果(猜测>数字猜测){
System.out.println(“你猜得太高了,伙计!”);
System.out.println(“你赢了!!”;
System.out.println(“随机数为!”+numberToGuess);
System.out.println(“它花了你一个惊喜”+numberofthries+“thries!”);
}
}while(win==false);
将while
块修改为执行while
块,如下所示
while (win == false) {
}
{
// The part that isn't really part of the loop
}
do{
System.out.println(“猜一个介于1和100之间的数字:”);
guess=input.nextInt();
numberofthries++;
如果(猜测==数字猜测){
赢=真;
}
else if(猜测<数字猜测){
System.out.println(“你猜得太低了,伙计!”);
}
否则如果(猜测>数字猜测){
System.out.println(“你猜得太高了,伙计!”);
System.out.println(“你赢了!!”;
System.out.println(“随机数为!”+numberToGuess);
System.out.println(“它花了你一个惊喜”+numberofthries+“thries!”);
}
}while(win==false);
您错过了第二个错误。这仍然有两个关于guess>numberToGuess
的测试。您错过了第二个错误。这仍然有两个关于guess>numberToGuess
的测试。