Java 为什么我的代码退出并不接受;是”;是用扫描仪还是硬编码的?
看起来扫描器在这里被正确地使用,并且被正确地分配给了一个变量,但是我无法弄清楚到底发生了什么。当我在代码中玩这个游戏时,INT会被很好地拉进去。由于某种原因,字符串不会被拉入,即使我为字符串硬编码“yes”,它仍然会退出代码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
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做任何事情了。谢谢你提醒我!谢谢,我忘了弦的这个方面了!谢谢,我忘了弦的这个方面了!