Вопрос по matlab, goto – Команда перехода в MATLAB

11

Я работаю с редактором m-файлов в MATLAB, и мне нужно перейти с одной строки на другую. Если мне нужно прыгнуть изнутриFor...endЯ не могу использовать обычный "while" техника.
Есть ли в любом случае, чтобы перейти с одной линии на другую, какgoto в С?

Тамis пользовательский оператор goto; вы можете найти его наfile exchange Rody Oldenhuis
Насколько я знаю, в Matlab нет оператора goto. Но вы почти всегда можете избежать перехода, перестроив свою программу. danatel

Ваш Ответ

4   ответа
18

goto оператор в MATLAB, но есть несколько других команд для использования с циклами, которые могут вам помочь:

continue: This statement will skip the remaining commands in a for or while loop and move on to the next iteration. break: This statement will terminate execution of a for or while loop.
+1; но на самом деле, тамis goto statement in Matlab :)
@RodyOldenhuis На секунду я действительно подумал, что есть. Это не фактgoto, но в большинстве случаев это имитирует поведение довольно хорошо :)
0

caseno = input('input your case no');

switch (caseno)
     case 1
          disp('this first section will run');
     case 2
          disp('this second section will run');
     otherwise
          disp('wrong case no');
end
9

что вы не можете структурировать свой код, чтобы использовать структурную форму {if, else, elseif, end} для своего кода. Или используйте форму {switch, case, end}. Или вызовите функцию (или подфункцию или вложенную функцию), чтобы решить вашу проблему. Или используйте продолжение / разрыв, чтобы структурировать ваш код. Всегда можно решить эти проблемы, используя одну из существующих форм управления потоком.

Использование функций может улучшить ваш код другими способами, часто делая его более модульным, и, следовательно, его легче отлаживать и писать.

-1
for j = 1: 1: 24
  % LABEL start
a = a + j;
if a > 10
goto('start') % If condition satisfied goto label start
return
else
  a = a + 1;
end
end
Я получаю ошибкуUndefined function or variable 'goto'. используя Matlab 2016b.

Похожие вопросы