簡體   English   中英

即使條件為真也不執行 if 語句

[英]not executing the if statement even when the condition is true

我制作了一個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

嘗試使用equals()方法而不是==

if (ans.equals(answer)){

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM