Java 为什么我的代码退出并不接受;是”;是用扫描仪还是硬编码的?

Java 为什么我的代码退出并不接受;是”;是用扫描仪还是硬编码的?,java,java.util.scanner,Java,Java.util.scanner,看起来扫描器在这里被正确地使用,并且被正确地分配给了一个变量,但是我无法弄清楚到底发生了什么。当我在代码中玩这个游戏时,INT会被很好地拉进去。由于某种原因,字符串不会被拉入,即使我为字符串硬编码“yes”,它仍然会退出代码 package testTraining; import java.util.Scanner; public class GuessingGame { static int gamesPlayed; // The number of games played. s

看起来扫描器在这里被正确地使用,并且被正确地分配给了一个变量,但是我无法弄清楚到底发生了什么。当我在代码中玩这个游戏时,INT会被很好地拉进去。由于某种原因,字符串不会被拉入,即使我为字符串硬编码“yes”,它仍然会退出代码

package testTraining;

import java.util.Scanner;

public class GuessingGame {

static int gamesPlayed;   // The number of games played.
static int gamesWon;      // The number of games won.

public static void main(String[] args) {
   gamesPlayed = 0;
   gamesWon = 0;  // This is actually redundant, since 0 is 
                  //                 the default initial value.
   System.out.println("Let's play a game.  I'll pick a number between");
   System.out.println("1 and 100, and you try to guess it.");
  String yesno = "yes";
  Scanner yesScan = new Scanner(System.in);
   do {
      playGame();  // call subroutine to play one game
      System.out.print("Would you like to play again? ");
      yesno = yesScan.next();
   } while (yesno == "yes");
   System.out.println();
   System.out.println("You played " + gamesPlayed + " games,");
   System.out.println("and you won " + gamesWon + " of those games.");
   System.out.println("Thanks for playing.  Goodbye.");
} // end of main()            

static void playGame() {
    Scanner guessScan = new Scanner(System.in);
    int computersNumber; // A random number picked by the computer.
    int usersGuess;      // A number entered by user as a guess.
    int guessCount;      // Number of guesses the user has made.
    gamesPlayed++;  // Count this game.
    computersNumber = (int)(100 * Math.random()) + 1;
             // The value assigned to computersNumber is a randomly
             //    chosen integer between 1 and 100, inclusive.
    guessCount = 0;
    System.out.println();
    System.out.print("What is your first guess? ");
    while (true) {
       usersGuess = guessScan.nextInt();  // Get the user's guess.
       guessCount++;
       if (usersGuess == computersNumber) {
          System.out.println("You got it in " + guessCount
                  + " guesses!  My number was " + computersNumber);
          gamesWon++;  // Count this win.
          break;       // The game is over; the user has won.
       }
       if (guessCount == 6) {
          System.out.println("You didn't get the number in 6 guesses.");
          System.out.println("You lose.  My number was " + computersNumber);
          break;  // The game is over; the user has lost.
       }
       // If we get to this point, the game continues.
       // Tell the user if the guess was too high or too low.
       if (usersGuess < computersNumber)
          System.out.print("That's too low.  Try again: ");
       else if (usersGuess > computersNumber)
          System.out.print("That's too high.  Try again: ");
    }
    System.out.println();
} // end of playGame()

} // end of class GuessingGame
package测试培训;
导入java.util.Scanner;
公开课猜谜游戏{
静态int gamesPlayed;//已玩的游戏数。
static int gamesWon;//赢得的游戏数。
公共静态void main(字符串[]args){
gamesPlayed=0;
gamesWon=0;//这实际上是多余的,因为0是
//默认初始值。
System.out.println(“让我们玩一个游戏,我从中选择一个数字”);
System.out.println(“1和100,你试着猜它。”);
字符串yesno=“yes”;
扫描仪yesScan=新扫描仪(System.in);
做{
playGame();//调用子例程来玩一个游戏
System.out.print(“您想再次播放吗?”);
yesno=yesScan.next();
}而(yesno="yes);;
System.out.println();
System.out.println(“您玩了”+gamesPlayed+games,”);
System.out.println(“你赢得了这些游戏中的“+gamesWon+”);
System.out.println(“谢谢玩,再见”);
}//main()的结尾
静态void游戏(){
扫描仪猜测扫描=新扫描仪(System.in);
int computersNumber;//计算机拾取的随机数。
int usersGuess;//用户作为猜测输入的数字。
int guessCount;//用户的猜测次数。
gamesPlayed++;//计算此游戏。
computersNumber=(int)(100*Math.random())+1;
//分配给computersNumber的值是一个随机变量
//选择介于1和100之间的整数(包括1和100)。
猜测计数=0;
System.out.println();
System.out.print(“您的第一个猜测是什么?”);
while(true){
usersGuess=guesscan.nextInt();//获取用户的猜测。
猜数++;
if(usersGuess==computersNumber){
System.out.println(“你得到了”+猜测计数
+“猜猜!我的号码是”+计算机号码);
gamesWon++;//计算这场胜利。
break;//游戏结束;用户赢了。
}
如果(猜测计数==6){
System.out.println(“你在6次猜测中没有得到数字。”);
System.out.println(“你输了,我的号码是”+computersNumber);
break;//游戏结束;用户输了。
}
//如果我们到了这一点,游戏将继续。
//告诉用户猜测是过高还是过低。
if(usersGuesscomputersNumber)
System.out.print(“太高了,再试一次:”);
}
System.out.println();
}//游戏结束()
}//课后猜谜游戏

你需要将字符串与.equals(“yes”)进行比较,而不是==“yes”

你需要将字符串与.equals(“yes”)进行比较,而不是==“yes”

天啊,我是个白痴。我已经有一段时间没有用Java做任何事情了。谢谢你提醒我!天哪,我是个白痴。我已经有一段时间没有用Java做任何事情了。谢谢你提醒我!谢谢,我忘了弦的这个方面了!谢谢,我忘了弦的这个方面了!