Как оператор return
отличается от оператора break
?.
Если мне нужно выйти из условия if, которое я должен предпочесть, return
или break
?
Разница между выражениями Return и Break
Ответ 1
break
используется, когда вы хотите выйти из цикла, тогда как return
используется, чтобы вернуться к шагу, на котором он был вызван, или остановить дальнейшее выполнение.
Ответ 2
break
используется для выхода (escape) for
-loop, while
-loop, switch
-statement, который вы в настоящее время выполняете.
return
выйдет из всего метода, который вы сейчас выполняете (и, возможно, возвращаете значение вызывающему, необязательно).
Итак, чтобы ответить на ваш вопрос (как отмечали другие в комментариях и ответах), вы не можете использовать break
и return
для выхода из if-else
-стата как такового. Они используются для выхода из других областей.
Рассмотрим следующий пример. Значение x
внутри while
-loop будет определять, будет ли выполняться код ниже цикла:
void f()
{
int x = -1;
while(true)
{
if(x == 0)
break; // escape while() and jump to execute code after the the loop
else if(x == 1)
return; // will end the function f() immediately,
// no further code inside this method will be executed.
do stuff and eventually set variable x to either 0 or 1
...
}
code that will be executed on break (but not with return).
....
}
Ответ 3
Вы не сможете выйти только из условия if
, используя return
или break
.
return
используется, когда вам нужно вернуться из метода после его выполнения, когда вы не хотите выполнять оставшуюся часть кода метода. Поэтому, если вы используете return
, вы вернетесь не только из своего состояния if
, но и из всего метода.
Рассмотрим следующий метод:
public void myMethod()
{
int i = 10;
if(i==10)
return;
System.out.println("This will never be printed");
}
Здесь использование return
приводит к прекращению выполнения всего метода после строки 3, и выполнение возвращается к вызывающей стороне.
break
используется для выхода из оператора loop
или switch
. Рассмотрим этот пример -
int i;
for(int j=0; j<10; j++)
{
for(i=0; i<10; i++)
{
if(i==0)
break; // This break will cause the loop (innermost) to stop just after one iteration;
}
if(j==0)
break; // and then this break will cause the outermost loop to stop.
}
switch(i)
{
case 0: break; // This break will cause execution to skip executing the second case statement
case 1: System.out.println("This will also never be printed");
}
Этот тип оператора break
известен как оператор unlabeled break
. Существует еще одна форма разрыва, которая называется labeled break
. Рассмотрим этот пример -
int[][] arrayOfInts = { { 32, 87, 3, 589 },
{ 12, 1076, 2000, 8 },
{ 622, 127, 77, 955 }
};
int searchfor = 12;
int i;
int j = 0;
boolean foundIt = false;
search:
for (i = 0; i < arrayOfInts.length; i++)
{
for (j = 0; j < arrayOfInts[i].length; j++)
{
if (arrayOfInts[i][j] == searchfor)
{
foundIt = true;
break search;
}
}
}
В этом примере используются вложенные циклы for для поиска значения в двумерном массиве. Когда значение найдено, помеченный разрыв завершает внешний цикл for (помеченный как "поиск").
Вы можете узнать больше о наших break
и return
утверждениях из JavaDoc
.
Ответ 4
Не обижайтесь, но ни один из других ответов (пока) не имеет права.
break
используется для немедленного завершения цикла for
, цикла while
или оператора switch
. Вы не можете break
из блока if
.
return
используется завершение метода (и, возможно, возврат значения).
A return
в любом цикле или блоке, конечно, также немедленно прекратит этот цикл/блок.
Ответ 5
break: - Эти инструкции переноса обходят правильный поток выполнения вне текущего цикла, пропуская оставшуюся итерацию
class test
{
public static void main(String []args)
{
for(int i=0;i<10;i++)
{
if(i==5)
break;
}
System.out.println(i);
}
}
output will be
0
1
2
3
4
Продолжить: -Это передача будет обходить поток выполнения до начальной точки цикла inorder, чтобы продолжить следующую итерацию, пропуская все остальные инструкции.
class test
{
public static void main(String []args)
{
for(int i=0;i<10;i++)
{
if(i==5)
continue;
}
System.out.println(i);
}
}
output will be:
0
1
2
3
4
6
7
8
9
return: - В любое время в методе оператор возврата может быть используется для того, чтобы выполнение выполнялось для возврата обратно вызывающему абоненту метода. Таким образом, оператор return немедленно прекращает метод, в котором он выполняется. Следующий пример иллюстрирует этот момент. Вот, return заставляет выполнение вернуться в систему времени выполнения Java, поскольку это система времени выполнения, которая вызывает main().
class test
{
public static void main(String []args)
{
for(int i=0;i<10;i++)
{
if(i==5)
return;
}
System.out.println(i)
}
}
output will be :
0
1
2
3
4
Ответ 6
break
прерывает текущий цикл и продолжается, а return
он разрушит текущий метод и продолжит с того, где вы назвали этот метод
Ответ 7
Возврат выйдет из метода, как уже указывали другие. Если вам нужно пропустить только какую-то часть метода, вы можете использовать break, даже без цикла:
label: if (some condition) {
// some stuff...
if (some other condition) break label;
// more stuff...
}
Обратите внимание, что это обычно не хороший стиль, хотя иногда полезно.
Ответ 8
Вы используете break вне цикла или оператора switch.
Вы используете return в функции для возврата значения. Оператор return завершает функцию и возвращает управление туда, где была вызвана функция.
Ответ 9
Оператор Break
разрушит весь цикл и выполнит код после цикла, а Return
не выполнит код после этого оператора Return
и выполнит цикл со следующим шагом.
Разрыв
for(int i=0;i<5;i++){
print(i)
if(i==2)
{
break;
}
}
вывод: 0 1
возвращение
for(int i=0;i<5;i++)
{
print(i)
if(i==2)
{
return;
}
}
вывод: 0 1 3 4
Ответ 10
В этом коде я выполняется итерация до 3, затем цикл заканчивается;
int function (void)
{
for (int i=0; i<5; i++)
{
if (i == 3)
{
break;
}
}
}
В этом коде я выполняется итерация до 3, но с выходом;
int function (void)
{
for (int i=0; i<5; i++)
{
if (i == 3)
{
return i;
}
}
}
Ответ 11
break просто прерывает цикл, и возврат возвращается к методу вызывающего.
Ответ 12
Как оператор return отличается от оператора break. Оператор возврата завершает выполнение текущего метода и возвращает значение вызывающему методу. Break используется для выхода из любого цикла.
Если мне нужно выйти из условия if, которое я должен предпочесть, верните или перерыв?
Для выхода из выполнения метода используйте return. для выхода из любого цикла вы можете использовать либо break, либо return на основе вашего требования.
Ответ 13
Прерывание только остановит цикл, в то время как возврат внутри цикла остановит цикл и вернется из функции.
Ответ 14
def print_numbers():
for i in range(0, 5):
print('i will print',i)
if i == 2:
break
def get_number():
for i in range(0, 5):
if i == 2:
return i
print_numbers()
number = get_number()
print('i got ',number)
Ответ 15
Если вы хотите выйти из простого оператора if else
, но все еще остается в определенном контексте (а не возвращаться в вызывающий контекст), вы можете просто установить условие блока в false:
if(condition){
//do stuff
if(something happens)
condition = false;
}
Это гарантирует, что дальнейших действий не будет, так как я думаю, что вы этого хотите. Вы можете использовать break только в loop
или switch case