关于java:类常量final变量

Class constant final variable

这是我的密码。我需要用日常用语和答案来保持不变。我需要一个用户输入一个"今天的单词是什么"和"3*8的答案是什么"的答案,根据他们的答案,它要么被接受为正确的答案,要么被拒绝,然后他们再试一次。我一直收到这个编译器错误

错误:无法将值赋给最终变量wordoftday错误:无法为最终变量答案赋值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//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("
What is the answer to 3 * 8?"
);
  answer = input.nextInt();

 System.exit(0);
 }
}

你需要两个不同的变量。一个用来存储一天中的单词,另一个用来存储用户的猜测。所以你需要给他们取两个不同的名字。可能是wordOfTheDayusersGuess。然后,您可以在用户猜测之后,通过将循环结束时的条件更改为while(!wordOfTheDay.equals(usersGuess));,对它们进行比较。


1
public static final String wordOfTheDay ="Kitten";

由于wordoftday声明为final,因此不能在此之后分配任何值。

不能多次为所有最终变量赋值。

所以从它上面移除final,如下所示。

1
public static  String wordOfTheDay ="Kitten";

现在,您可以分配任意次数的值。


你已经设置好了。它是最终的,所以你只能设置一次……