2016-11-07 2 views
1

Возможно ли, чтобы начало цикла for внутри оператора if. Например:Инициализировать for-loop в if-statement

if condition true 

    for j=1:10 

else % condition false 

    for j=11:20 

end % End of if-statement 

    % inner part of for-loop 

end % End of for-loop 

Я знаю, что это не самый красивый подход, но в некоторых случаях это может быть проще, чем простое кодирование.

ответ

6

Нет, это не работает.

Но вы можете сделать

if condition 
    range=1:10 
else % condition false 
    range=11:20 
end % End of if-statement 

for j=range 
    % inner part of for-loop 
end % End of for-loop 
+2

хорошее решение. Если все сложнее (например, вам может понадобиться использовать оба диапазона последовательно), вы также можете просто ввести цикл в функцию и вызвать функцию с соответствующим диапазоном в разных местах. –

+0

@DennisJaheruddin Это правильно, но по существу является специальной версией этого решения, когда/где 'range' является параметром этой функции. – glglgl