Skipping elseif when first condition is true
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I currently have the following scheme:
if (a =0)
q = 4
elseif (b=0)
q = 5
rest of code
end
The problem is, in the case a =0 the program does not work properly, as it simply skips the "rest of code".
I have tried moving the "end" before rest of code, but that does not work for the purposes of this.
Is there a way such that in the case a =0, it sets q=4, then just doesn't consider the elseif (b=0) case and continues onto the rest of the code?
Thanks!
1 commentaire
Réponses (2)
Image Analyst
le 21 Jan 2019
That's not how you check if a equals zero. You need to use double equals. A single equals is assignment, NOT comparison. Try this:
if (a == 0)
q = 4
elseif (b == 0)
q = 5
rest of code
end
0 commentaires
Steven Lord
le 21 Jan 2019
If you want to execute the rest of the code regardless of whether a was equal to 0 or b was equal to 0, take it out of the if / elseif / end block entirely.
if (a ==0)
q = 4
elseif (b==0)
q = 5
end
rest of code
If you need to throw an error if neither a nor b was 0, use else and throw an error inside the else.
if (a ==0)
q = 4
elseif (b==0)
q = 5
else
error('Expected either a or b to be 0')
end
rest of code
0 commentaires
Voir également
Catégories
En savoir plus sur Search Path 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!