Подтвердить что ты не робот

Разница между выражениями Return и Break

Как оператор return отличается от оператора break?.
Если мне нужно выйти из условия if, которое я должен предпочесть, return или break?

4b9b3361

Ответ 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