gpt4 book ai didi

java - 我的 JAVA do 循环有什么问题?

转载 作者:行者123 更新时间:2023-11-29 03:58:00 24 4
gpt4 key购买 nike

我正在学习 JAVA 并尝试编写我的第一个循环。该循环应提示用户猜测定义的名称。

代码未正确执行。我试图在不同的 JAVA tuturials 上搜索帮助,但都没有找到任何你猜名字/字符串的例子,但很多你应该猜数字的例子。

这是我的代码:

 /**
*
* @author mso_
*/
import java.util.Scanner;

public class GuessName {

/**
* @param args the command line arguments
*/

public static final int C_Max_Trials = 10;

public static void main(String[] args) {
//Define correct name
String name = "Morten";
String guessName;

//Create a scanner
Scanner guess = new Scanner(System.in);

//Recieve a guess
do {
System.out.println("Please guess my name. Enter your guess here: ");
String guessName = guess.next(); <-- ERROR

//Create loop
} while (guessName != name); <-- ERROR
System.out.println("Sorry, wrong guess, please enter another guess: ");

if (guessName = name); <-- ERROR
System.out.println("Right on! ");


}

}

我做错了什么?

最佳答案

字符串比较

你不能像这样比较字符串。这只会比较引用。您必须使用 equals() 方法:

while (! guessName.equals(name));

一点解释:http://www.zparacha.com/java-string-comparison/

变量重新声明

您的代码中还有另一个错误,您尝试在循环内重新声明 guessName。您只能在循环外声明一次 guessName(即在 do { 之前)。

一般错误

第三,您的代码中还有一些其他错误。我想所有这些都在其他答案中指出了,但我会做一个快速列表:

  1. if (guessName = name); 这是一个无用的语句,你必须打开一个 block :if(condition) { statement; }
  2. 同一行,你做的是赋值,而不是比较,就像说的,对于 String 你必须使用 .equals()
  3. System.out.println() 不会按您的想法执行。重新阅读有关 do { } while() 循环的文档,直到您真正理解它们。

我的建议:在编写代码之前仔细阅读编译器的错误消息并阅读一些文档。

关于java - 我的 JAVA do 循环有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5184741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com