Альтернативы встроенным операторам if?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Альтернативы встроенным операторам if?

Сообщение Anonymous »

У меня есть опыт программирования, но не большой опыт разработки программного обеспечения. В настоящее время я пишу программное обеспечение для компании, в которой работаю, и мне нужно проверить читаемость моего кода.

Я хочу знать является ли это «действительной» альтернативой встроенным операторам if, или есть что-то лучшее, что я мог бы использовать.

Предположим, у меня есть следующий метод:

Код: Выделить всё

public void someMethod()
{
if (some condition)
{
if (some condition 2)
{
if (some condition 3)
{
// ...etc all the way until:
doSomething();
}
else
{
System.err.println("Specific Condition 3 Error");
}
}
else
{
System.err.println("Specific Condition 2 Error");
}
}
else
{
System.err.println("Specific Condition 1 Error");
}
}
Теперь первое, что я должен отметить, это то, что в этом случае объединение условий (с &&) невозможно, поскольку каждое из них имеет уникальную ошибку, которую я хочу сообщить, и если бы я объединил их, я бы не смог этого сделать (или смог бы?). Второе, на что я должен обратить внимание, прежде чем кто-нибудь закричит «SWITCH STATEMENT!» меня беспокоит то, что не все эти условия можно обработать с помощью оператора переключения; некоторые из них — вызовы методов, специфичных для объекта, некоторые — целочисленные сравнения и т. д.

Тем не менее, является ли следующий действительный способ сделать приведенный выше код более читабельным, или есть ли другой способ сделать приведенный выше код более читабельным? лучший способ сделать это?

Код: Выделить всё

public void someMethod()
{
if (!some condition)
{
System.err.println("Specific Condition 1 Error");
return;
}

if (!some condition 2)
{
System.err.println("Specific Condition 2 Error");
return;
}

if (!some condition 3)
{
System.err.println("Specific Condition 3 Error");
return;
}

doSomething();
}
По сути, вместо проверки условий и сообщения об ошибках в блоках else мы проверяем обратное условие и возвращаем значение, если оно истинно. Результат должен быть тот же, но есть ли лучший способ справиться с этим?

Подробнее здесь: https://stackoverflow.com/questions/844 ... statements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»