这是我的代码。我需要wordOfTheDay并回答保持不变。我需要一个用户输入一个答案"当天的字是什么"和#34; 3 * 8"的答案是什么?根据他们的答案,它将被接受为正确的答案或被拒绝,他们再试一次。 我一直收到这个编译错误
错误:无法为最终变量wordOfTheDay指定值 错误:无法为最终变量回答分配值
//The word of the day is Kitten
import java.util.Scanner;
public class SchmeisserKLE41 {
public static final Scanner input = new Scanner(System.in);
public static final String wordOfTheDay = "Kitten";
public static final int answer = 24;
public static void main(String[] args) {
int attempts = 3;
System.out.printf("Please enter the word of the day:");
wordOfTheDay = input.nextLine();
do{
-- attempts;
if(attempts == 0){
System.out.printf("Sorry! You've exhausted all your attempts!");
break;
}
System.out.printf("Invalid! Try again %d attempt(s) left.", attempts);
wordOfTheDay = input.nextLine();
}
while(!wordOfTheDay.equals("Kitten"));
System.out.printf("\nWhat is the answer to 3 * 8?");
answer = input.nextInt();
System.exit(0);
}
}
答案 0 :(得分:0)
wordOfTheDay = input.nextLine();
您已设置wordOfTheDay
。它是最终的,所以你只能设置一次......
答案 1 :(得分:0)
public static final String wordOfTheDay = "Kitten";
因为wordOfTheDay声明为final,所以在此之后不能赋值。
所有最终变量都不能多次分配一个值。
所以从中删除最终结果。
public static String wordOfTheDay = "Kitten";
现在您可以任意次数分配值。
答案 2 :(得分:0)
您需要两个不同的变量。一个用于存储当天的单词,另一个用于存储用户的猜测。所以你需要有两个不同的名字。可能是wordOfTheDay
和usersGuess
。然后,您可以在用户猜测后通过将循环结束时的条件更改为while(!wordOfTheDay.equals(usersGuess));
来比较它们