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); } } |
你需要两个不同的变量。一个用来存储一天中的单词,另一个用来存储用户的猜测。所以你需要给他们取两个不同的名字。可能是
1 |
由于wordoftday声明为final,因此不能在此之后分配任何值。
不能多次为所有最终变量赋值。
所以从它上面移除final,如下所示。
1 |
现在,您可以分配任意次数的值。
你已经设置好了。它是最终的,所以你只能设置一次……