2014-10-28 3 views
0

Я пытаюсь написать программу здесь, и в моем случае if-else у меня есть String messageToStudent, инициализируйте, если taskCompleted == 'y' || taskCompleted == 'Y', и в моем заявлении else, чтобы инициализировать его для чего-либо еще. однако, когда я пытаюсь скомпилировать его, это может быть не инициализировано messageToStudent. Теперь я подумал, что сделал это через код, который будет инициализирован ОДНОЙ из строк messageToStudent, но я думаю, что я ошибся. Вот то, что я до сих пор:Инициализация переменной String в if-else

if(school == 1) { 
    System.out.println(name + ", have you started your engineering project yet?"); 
    taskCompleted = scan.nextLine().charAt(0); 
    if (taskCompleted == 'y' || taskCompleted == 'Y') 
     messageToStudent = "Good for you! Keep me updated on your progress."; 
    System.out.println(messageToStudent); 
} else { 
    messageToStudent = "That's not good at all. It's nearly November!"; 
} 
System.out.println(messageToStudent); 
+0

Компилятор недостаточно умен. Дайте ему начальное значение '' '' или 'null', когда вы объявите переменную. –

+1

Если школа '1', а taskCompleted -' N', где инициализируется 'messageToStudent'? – azurefrog

+0

вы должны прочитать [NullPointerException] (http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) – gudthing

ответ

2

Что делать, если school был 1 но taskCompleted не 'y' или 'Y'? Это путь, где messageToStudent не был инициализирован.

Укажите значение, даже если это пустая строка или null вверху, поэтому она всегда инициализируется.

Смежные вопросы