Взлом Java против возврата

Я использую логическое значение, которое возвращает true. Когда происходит что-то вроде этого:

public boolean t(String label, String[] arguments) {
    boolean j = false;
    if (!j) {
        return true;
    }
    return true;
}

Однако внутри этого логического значения у меня есть оператор switch. Как вы, возможно, знаете, обычно вы выходите из операторов switch. Однако я делаю что-то вроде этого тестирования, чтобы логические значения были истинными или ложными. Вернусь ли я внутрь оператора switch или сломаюсь, если логическое значение ложно?

Примером может быть что-то вроде этого:

switch (arguments.length) {
    case 0:
        if (j) return true;
        break;
    default:
        break;
}

Что было бы полезнее, заменить return true на break или оставить прежним?


person JarFile    schedule 23.05.2015    source источник
comment
Пожалуйста, предоставьте больше контекста. Кроме того, break не нужен, если вы return (на самом деле он недоступен).   -  person Elliott Frisch    schedule 23.05.2015


Ответы (2)


Оператор break завершит выполнение оператора switch и продолжит работу в методе. Оператор return полностью оставил бы метод.

На самом деле это вопрос предпочтений, какой из них лучше. Это сводится к разработке метода.

Я бы сказал, что в большинстве случаев, как у вас выше, было бы лучше напрямую использовать оператор return и полностью оставить метод.

Тем не менее, это:

public boolean t(String label, String[] arguments) {
    boolean j = false;
    if (!j) {
        return true;
    }
    return true;
}

Можно упростить до этого:

public boolean t(String label, String[] arguments) {   
    return true;
}

И если вы проверяете только одно условие из одной переменной, вам не нужен оператор switch; это не так оптимально.

Я делаю что-то вроде этого тестирования, чтобы логические значения были истинными или ложными.

Вы не должны на самом деле "проверять" логические переменные на истинность или ложность, просто возвращайте их.

person James Taylor    schedule 23.05.2015
comment
На самом деле его можно упростить до return true;. - person Elliott Frisch; 23.05.2015
comment
Ну, да. Я просто подумал, что j может что-то означать в реализации. - person James Taylor; 23.05.2015
comment
Я просто делал пример, оператор switch, который я на самом деле использую, имеет больше случаев, чем один. Как вернуть логическое значение, если логическое значение находится внутри другого логического значения. - person JarFile; 23.05.2015

Вызов возврата всегда возвращает обработчик в вызываемую функцию, где прерывание в операторе переключения позволяет избежать проверки других случаев, присутствующих в случае переключения. Если вы не хотите, чтобы ваша программа возвращала какие-либо значения, тогда достаточно break, иначе требуется return.

person Mohan Raj    schedule 23.05.2015