我制作了一個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
);
}
}
}
由于有太多不成功的嘗試,我的代碼可能有一些不必要的行,這些行變得很長。
uj5u.com熱心網友回復:
使用==時比較這兩個參考變數是否指向同一個物件。如果你想比較它們的內容,那么你應該使用equals()比較物件內容的方法,而不是物件本身。
使用ans.equals(answer)代替ans== answer
uj5u.com熱心網友回復:
嘗試使用equals()method 而不是==.
if (ans.equals(answer)){
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338233.html
上一篇:在if陳述句中參考資料庫
