While loop inside another While loop (While in While)

Hello everyone. I have faced with problem where I have to do two while loops simultaneously and I decided to put another one inside the existing while loop. Is there any other way or I am doing something wrong, or even it is impossible. Thank you!

댓글 수: 1

Adam
Adam 2017년 1월 20일
편집: Adam 2017년 1월 20일
You need to give more information on exactly what you are doing. 'Simultaneously' implies that the two while loops are (probably) independent of each other, but both happening at the same time. This obviously will not be achieved by nesting them, but maybe you just don't really mean 'simultaneously'.
Obviously nested while loops are possible. Do they do what you want? I have no idea. I there a better way? Again, I have no idea without knowing what you are trying to do.

댓글을 달려면 로그인하십시오.

답변 (1개)

I don't think there is a problem with the loops by themselves. You must have a problem with the logic, can you show the code you have. Here is an example of how to use a while into another while.
i=0;
while i<5
j=0;
while j<5
disp([i j]);
j=j+1;
end
i=i+1;
end
Also If you want to run them 'simultaneusly' I understand that as running them in parell, you can try to do domething like this.
parpool(4);
i=0;
spmd
while i<5
disp([labindex i]);
i=i+1;
end
end

댓글 수: 7

Thank you very much. I have adjusted my code according to your example and it worked
is there another way to boost the nested while loop ? i mean while loop inside the while loop.
Batchtiar, could you explain your needs more?
@Walter Roberson : i made code where i need to use while loop inside while loop, first ran the tes2_2.m worked properly, but the second time the tes2_2.m didn't show any output at all, even i couldn't terminate it operation.
i think the problem is in the while loop, can you help me how to solve this issue sir ?
Please start a new question for that, as it is quite different than the current topic.
Why did you need to use display [i j] in the first example?
The use of disp() was simply to demonstrate how the two values are being incremented as the execution progresses through both loops. j increments from 0 to 4 five times. Each time j recycles back to 0, i is incremented.
i=0;
while i<5
j=0;
while j<5
disp([i j]);
j=j+1;
end
i=i+1;
end
0 0 0 1 0 2 0 3 0 4 1 0 1 1 1 2 1 3 1 4 2 0 2 1 2 2 2 3 2 4 3 0 3 1 3 2 3 3 3 4 4 0 4 1 4 2 4 3 4 4

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2017년 1월 20일

댓글:

DGM
2023년 2월 22일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by