Подскажите, почему не проходит второй и третий пункт?
package com.javarush.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
User, Loser, Coder and Proger
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Person person = null;
String key;
//тут цикл по чтению ключей, пункт 1
while(true){
key = reader.readLine();
boolean a =key.equals("coder")|| key.equals("loser") || key.equals("proger") || key.equals("user");
if (!a) break;
if(key.equals("coder")){
person = new Person.Coder();
break;
}
if(key.equals("loser")){
person = new Person.Loser();
break;
}
if(key.equals("proger")){
person = new Person.Proger();
break;
}
if(key.equals("user")){
person = new Person.User();
break;
}
//создаем объект, пункт 2
doWork(person); //вызываем doWork
}
}
public static void doWork(Person person) {
// пункт 3
if (person instanceof Person.User) {
Person.User user = (Person.User) person;
user.live();
}
if (person instanceof Person.Proger) {
Person.Proger user = (Person.Proger) person;
user.enjoy();
}
if (person instanceof Person.Loser) {
Person.Loser user = (Person.Loser) person;
user.doNothing();
}
if (person instanceof Person.Coder) {
Person.Coder user = (Person.Coder) person;
user.writeCode();
}
}
}