Не зашло одно требование, как я понял перед тем как сделать бреак нужно еще раз добавить ту строку которая и инициирует разрьів цикла. Но оно тогда вообще не скомпилируется! Что делать?
package com.javarush.task.task14.task1414;
/*
MovieFactory
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws Exception {
//ввести с консоли несколько ключей (строк), пункт 7
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String key;
ArrayList<String> list = new ArrayList<>();
while (true) {
String w1="ne";
String w2="ne";
String w3="ne";
key = reader.readLine();
if (key.equals("soapOpera")) w1="da";
if(key.equals("thriller")) w2="da";
if(key.equals("cartoon")) w3="da";
if (w1.equals("ne") && w2.equals("ne") && w3.equals("ne")) {
list.add(key) ;
break; }
if (w1.equals("da") || w2.equals("da") || w3.equals("da")) list.add(key);
}
for (int q = 0; q<list.size(); q++){
Movie movie = MovieFactory.getMovie(list.get(q));
System.out.println(movie.getClass().getSimpleName());
}
/*
8 Создать переменную movie класса Movie и для каждой введенной строки(ключа):
8.1 получить объект используя MovieFactory.getMovie и присвоить его переменной movie
8.2 вывести на экран movie.getClass().getSimpleName()
*/
}
static class MovieFactory {
static Movie getMovie(String key) {
Movie movie = null;
//создание объекта SoapOpera (мыльная опера) для ключа "soapOpera"
if ("soapOpera".equals(key)) {
movie = new SoapOpera();
}
if ("cartoon".equals(key)){
movie = new Cartoon();
}
if ("thriller".equals(key)){
movie = new Thriller();
}
//напишите тут ваш код, пункты 5,6
return movie;
}
}
static abstract class Movie {
}
static class SoapOpera extends Movie {
}
static class Cartoon extends Movie{
}
static class Thriller extends Movie{
}
//Напишите тут ваши классы, пункт 3
}