public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); Person person = null; while (true) { String read = reader.readLine(); if (read.equals("loser")) person = new Person.Loser(); if (read.equals("user")) person = new Person.User(); if (read.equals("proger")) person = new Person.Proger(); if (read.equals("coder")) person = new Person.Coder(); if (!(read.equals("loser") || read.equals("user") || read.equals("proger") || read.equals("coder"))) break; doWork(person); //вызываем doWork } } public static void doWork(Person person) { if (person instanceof Person.Loser) new Person.Loser().doNothing(); if (person instanceof Person.User) new Person.User().live(); if (person instanceof Person.Coder) new Person.Coder().writeCode(); if (person instanceof Person.Proger) new Person.Proger().enjoy(); } }