2014-10-13 10 views
0

이것은 내 코드입니다. 나는 같은 것을 지키기 위해 wordOfTheDay와 대답이 필요합니다. "오늘의 단어는 무엇입니까?"와 "3 * 8의 답은 무엇입니까?"라는 대답을 입력해야하며 답변에 따라 정답으로 받아 들여지거나 거부되며 다시 시도됩니다. 나는이 컴파일러 오류를클래스 상수 최종 변수

오류가 계속 : 최종 변수 wordOfTheDay 오류에 값을 할당 할 수 없습니다 : 이미 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

두 개의 다른 변수가 필요합니다. 하나는 하루의 단어를 저장하고 다른 하나는 사용자의 추측을 저장합니다. 따라서 두 가지 이름이 필요합니다. 어쩌면 wordOfTheDayusersGuess 일 수 있습니다. 그런 다음 루프가 끝날 때 조건을 변경하여 사용자가 추측 한 후에 비교할 수 있습니다. while(!wordOfTheDay.equals(usersGuess));

0

wordOfTheDay = input.nextLine(); 최종 변수 대답에 값을 할당 할 수 없습니다. 당신은 단지 그것을 한 번 설정할 수 있도록 wordOfTheDay는 마지막으로, 그것은이 이후에 어떤 값을 할당 할 수 없습니다 선언 이후는

+0

wordOfTheDay를 "새끼 고양이"로 유지하고 올바르게 수정되었는지 테스트 할 수 있습니까? –

0
public static final String wordOfTheDay = "Kitten"; 

..., 마지막입니다.

모든 최종 변수에는 두 번 이상의 값을 할당 할 수 없습니다.

다음과 같이 최종본을 삭제하십시오.

public static String wordOfTheDay = "Kitten"; 

이제는 여러 번 값을 할당 할 수 있습니다.

+0

어떻게 wordOfTheDay를 "새끼 고양이"로 유지하고 그것이 올바른지 시험해 볼 수 있습니까? –

+0

은 위의 그림과 같이 final로 선언하고 조건에 따라 값을 할당합니다. –