Возврат ли внутри if (), который находится внутри for () - возврат из if () или для for ()? - PullRequest
1 голос
/ 13 октября 2009

Хорошо, я не уверен, что моя строка возврата завершит цикл for () или только вопрос if ()?

Пример:

for(;;) {
  wait(1);
  if(something) {
    tokens = strTok(something, " ")
    if(tokens.size < 2)
      return;
   }
}

Я предполагаю, что он просто вернется из вопроса if (что-то), но я просто хочу быть уверен ...

Ответы [ 6 ]

17 голосов
/ 13 октября 2009

В языках, подобных C, return выходит из всей функции. break выйдет из самого внутреннего цикла (for do...while или while)

3 голосов
/ 13 октября 2009

На всех известных мне языках (кроме haskell) return вернется из включающей функции / метода, а break вернется из цикла.

2 голосов
/ 13 октября 2009

возврат в большинстве языков завершит весь метод.

1 голос
/ 13 октября 2009

Предположительно, все это внутри функции или метода; RETURN выйдет из этой функции / метода.

Чтобы привести пример более процедурной настройки, в файле PHP RETURN, которого нет в функции, выйдет из текущего файла сценария. (Опять же, не имеет значения, находится ли он внутри других блоков.)

1 голос
/ 13 октября 2009

RETURN для всех языков, которые я знаю: «Прекратите делать то, что вы делаете, и полностью выйдите из этой функции». Из вашего описания вы, очевидно, не хотите ВОЗВРАТИТЬ, вы хотите ПРОРЫВ или ПРОДОЛЖЕНИЕ, в зависимости от используемого вами языка.

1 голос
/ 13 октября 2009

Это может зависеть от конкретного языка, но для всех языков, о которых я думаю, return вернется из текущей функции. Структуры FOR () и IF () обычно не имеют операторов возврата.

...