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