bypass an "if" within another using a flag
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mehrdad Bahadori
le 8 Avr 2023
Modifié(e) : Image Analyst
le 8 Avr 2023
Hi everyone,
I have the code below:
a=5; b=4; c=3; d=2;
if a>b
if b>c % ====> this
if c>d
disp('i''m in!')
end
end % ======> this
end
Is it possible I bypass the " if b>c" using a flag?
e.g. FLAG=1, include this if, and FLAG=0, bypass this if.
Thanks!
0 commentaires
Réponse acceptée
Walter Roberson
le 8 Avr 2023
You might mean either of two different things:
First possibility:
a=5; b=4; c=3; d=2;
if a>b
if FLAG == 1 && b>c
if c>d
disp('i''m in!')
end
end % ======> this
end
In the above case, if b>c is only tested if FLAG is 1 -- but c>d is not tested if FLAG is not 1.
Second possibility:
a=5; b=4; c=3; d=2;
if a>b
if FLAG ~= 1 || b>c
if c>d
disp('i''m in!')
end
end % ======> this
end
In this case, the b>c test is only done if FLAG == 1, and if FLAG is not 1, then you go on to c>d anyhow.
2 commentaires
Image Analyst
le 8 Avr 2023
Modifié(e) : Image Analyst
le 8 Avr 2023
Unless you've left out a lot of code (especially after the b>c block, there is no reason to even enter the a>b block. You could simply do
if a>b && FLAG
if b>c
if c>d
disp('i''m in!')
end
end % ======> No more code after this block
end
Of course the b>c and c>d could even be combined into a single test sine the c>d is the only thing in the block (again, assuming you have not left out additional code):
if a>b && FLAG
if b>c && c>d
disp('i''m in!')
end % ======> No more code after this block
end
Plus de réponses (1)
Image Analyst
le 8 Avr 2023
Since the b>c test occurs only inside the a>b block, and it's the only thing in the a>b block, you could simply do
if a>b && b>c
if c>d
disp('i''m in!')
end
end
1 commentaire
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements 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!