2015-08-13 2 views
0

Я пытаюсь запустить какой-то код, подобный этому ниже ... Я думаю, что у меня есть фундаментальное непонимание для циклов. Я хочу выполнить итерацию через цикл for, если условие на каждой итерации выполнено (X == Истина). Я хочу завершить эту итерацию, если ее не выполнено/else, я бы хотел увидеть, удовлетворяет ли она второму условию (Z == Истина) ... если это так, я хотел бы продолжить делать thing2 и считать, что в качестве итерации , а условие истинно, как только оно перестает быть истинным, я хотел бы, чтобы он запускал еще один цикл, делающий вещь3 5 раз, затем верните исходный оператор if для следующей итерации. Если второе условие (Z == True) не выполнено, я бы хотел, чтобы он выполнял ту же самую 5-итерационную вещь3 для цикла. Надежда, что имеет смысл ... спасибоMATLAB while loop in else statement

for i=100:-1:1 
    if X==True 
     i=i-1; 
     do thing1; 
    else 
     while Z==True 
      i=i-1; 
      do thing2; 
     end 
     for n=1:1:5 
      i=i-1; 
      do thing3; 
     end 
    end 
end 
+0

В чем проблема? – Borsunho

+0

Извините, должен был указать: thing1, thing2 и вещь 3 каждый добавляет вектор ... так что я бы предположил, что мой вектор будет иметь длину 100, вместо этого я получаю гораздо больший вектор – user3470496

+0

Ну, вы _will_ end с длинным вектором с этим циклом. __Всегда время 'X' является' false', 'while' в вашем' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'добавляет неуказанное количество элементов в вектор, а' '' '' по крайней мере пять, так что если '' '' ложь' хотя бы один раз, у вас уже есть не менее 104 предметов. – Borsunho

ответ

0

в то время как Z = True бесконечный цикл. Проверьте это.