- The use of break looks ok!
- "I got some suspicious answers". How come "suspicious" ?
Can I use if ..break...else inside the same loop?
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
My apology if it seems very trivial to all, but I have looked into the answers and could not find one single example which used if..break...else in the same loop. In my code, I want the value of t, where any of the variables x(t) or y(t) or z(t).... equals M (some pre set value) for the first time and then discontinue the iteration; otherwise it will return 0. So my code snippet looks like:
for i = 1:T
...
...
if x(t) == M || y(t) == M || z(t) == M || a(t) == M || b(t) == M
target = t;
break
else
target = 0;
end
end
I got some suspicious answers, so I was thinking whether the problem is in the use of break or the random probabilities I used in my code. Thanks.
2 commentaires
per isakson
le 21 Oct 2015
Modifié(e) : per isakson
le 21 Oct 2015
Réponse acceptée
Robert
le 21 Oct 2015
Modifié(e) : Robert
le 22 Oct 2015
Your code looks fine. However, you can simplify the structure by adding target = 0; before your loop and omitting the else statement.
You might also consider using find(X==M,1), replacing X with each of your variables and then using min to find the index of the first occurrence of M, equivalent to your iterator i when you hit the break statement.
In any case, your use of if...break...else is not incorrect.
4 commentaires
Guillaume
le 22 Oct 2015
A possibly more efficient way of achieving the same result:
target = find(any([x;y;z;a;b] == M), 1); %assuming x,y,etc. are row vectors.
Less to type anyway.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Specifying Target for Graphics Output dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!