java - 即使条件为真也不执行 if 语句

标签 java if-statement

我编写了一个java代码来玩刽子手游戏。我给了用户 15 次猜测单词的机会,一旦用户猜到了正确答案,它应该执行 if 语句,但它没有。我曾多次尝试解决这个问题,但从来没有成功。如果您能告诉我问题并给出合适的解决方案而不对我的代码进行太多更改,我将不胜感激。

我的代码:

import java.util.*;
public class game
{
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        String list[] = {"apple", "banana", "mango", "kiwi", "coconut", "papaya", "lichi", "strawberry", "orange", "cherry"};
        int rand = (int)(Math.random()*9)+0;
        String word = list[rand];
        String ask = "_";
        for(int i = 1; i < word.length();i++){
            ask = ask + "_";
        }
        System.out.println(ask);
        System.out.println("hint: It is a fruit");
        ArrayList<String> ans = new ArrayList<String>();
        for (char i : ask.toCharArray()){
            ans.add("_");
        }
        for (int j = 1; j<=15; j++){
            System.out.println("Enter a character: ");
            String input = in.next();
            char alt = input.charAt(0);
            int x = 0;
            for (char i : word.toCharArray()){
                if(alt == i){
                    ans.set(x, input);
                }
                x++;
            }
            for (String i : ans){
                System.out.print(i);
            }
            int y = 0;
            ArrayList<String> answer = new ArrayList<String>();
            for (char i : word.toCharArray()){
                answer.add("_");
            }
            for(char i : word.toCharArray()){
                String alternate = String.valueOf(i);
                answer.set(y, alternate);
                y++;
            }
            if (ans == answer){
                System.out.println("\nyou win");
                break;
            }
            System.out.println("\n"+ans);
            System.out.println(answer
            );
        }
    }
}

由于多次不成功的尝试,我的代码可能有一些不必要的行,这些行使得代码变得很长。

最佳答案

当您使用==时,它会比较这两个引用变量是否指向同一个对象。 如果您想比较它们的内容,那么您应该使用 equals() 方法来比较对象的内容,而不是对象本身。

使用ans.equals(answer)代替ans==answer

关于java - 即使条件为真也不执行 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69733208/

相关文章:

java - 将圆点放入java中使用的圆弧

javascript - if 语句中表达式的顺序

java - 从单个 ibatis 查询返回多种类型

java - 如何将方程从 long 转换为 Biginteger

java - 如何在 Chrome 浏览器的 selenium Webdriver 中设置代理身份验证

python - 检查和访问数组元素没有错误

winforms - 如何避免一系列 "if"语句?

Python:测试检查列表列表中 bool 元素的正确顺序

powershell 包含不工作

java - 在 Java 环境中编译为 javascript 的模板