Проверил орфографию как хочет валя. Цикл корректный. Что не нравится?
package com.javarush.task.task31.task3110;
import com.javarush.task.task31.task3110.command.Command;
import com.javarush.task.task31.task3110.command.ExitCommand;
import com.javarush.task.task31.task3110.exception.WrongZipFileException;
import java.io.IOException;
import java.nio.file.Paths;
import static com.javarush.task.task31.task3110.CommandExecutor.execute;
import static com.javarush.task.task31.task3110.ConsoleHelper.*;
import static com.javarush.task.task31.task3110.ConsoleHelper.writeMessage;
public class Archiver {
public static void main(String[] args) throws Exception {
Operation operation;
while (true) {
try {
operation = askOperation();
if (operation.ordinal() == Operation.EXIT.ordinal()) {
Command exitCommand = new ExitCommand();
exitCommand.execute();
break;
} else {
execute(operation);
}
} catch (WrongZipFileException e) {
writeMessage("Вы не выбрали файл архива или выбрали неверный файл.");
} catch (Exception e) {
writeMessage("Произошла ошибка. Проверьте введенные данные.");
}
}
/* writeMessage("Задайте полный путь к архиву");
String fullArcPath = readString();
ZipFileManager zipFileManager = new ZipFileManager(Paths.get(fullArcPath));
writeMessage("Задайте полный путь к файлу, который нужно архивировать");
String fullArchiveFile = readString();
zipFileManager.createZip(Paths.get(fullArchiveFile));
Command exitCommand = new ExitCommand();
exitCommand.execute();
*/
}
public static Operation askOperation() throws IOException{
int operNumber;
while(true) {
writeMessage("Выберите операцию:");
for (Operation s : Operation.values())
System.out.println(s.ordinal() + " - " + s);
operNumber = readInt();
if (operNumber < 0 || operNumber > 5) {
writeMessage("Введено не корректное значение.");
} else {
break;
}
}
for (Operation s : Operation.values()) {
if (s.ordinal() == operNumber) {
return s;
}
}
return null;
}
}