How to stop the loop once store the 1st value of a variable?

3 views (last 30 days)
Dear all, In my code, I need to break the code after recording the 1st value once the condition satisfied. However, when I executed the following code, the "Swt_Tm" variable keep updating for each iteration while the condition is satisfied.
if strcmp (sg_12.get('AttValue','SigState'), 'GREEN')
Swt_Tm= sim.get('AttValue', 'SimSec');
end

Accepted Answer

Birdman
Birdman on 17 Feb 2018
Edited: Birdman on 17 Feb 2018
Use break command inside the condition(note that break command works inside for and while loop):
for ...
%%%code
if strcmp (sg_12.get('AttValue','SigState'), 'GREEN')
Swt_Tm= sim.get('AttValue', 'SimSec');
break;
end
%%%code
end
  3 Comments
Birdman
Birdman on 17 Feb 2018
while true
if strcmp (sg_12.get('AttValue','SigState'), 'GREEN')
Swt_Tm= sim.get('AttValue', 'SimSec');
break;
end
end
This will break the loop once the if condition is entered.
Sherif Shokry
Sherif Shokry on 17 Feb 2018
When I tried this modification, of course the loop was broken. I believe it's my fault that I did not explain it well. My idea that I need to record the 1st value once the condition is satisfied for each iteration by keeping the loop going on. For example, I need to record the time point (say 10:30:12) when a green signal starts. However, my code keep updating this value while the condition is satisfied (the green time still running) Thus, I need to keep just the first recorded time for this cycle and for the next phase, it should be also record the first recorded time for the next cycle (say 10:32:03) and so on.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!