- A case_expression cannot include relational operators such as < or > for comparison against the switch_expression. To test for inequality, use if, elseif, else statements.
Switch Case or if-else?
177 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sean Rubino
le 21 Mai 2021
Réponse apportée : Stephen23
le 18 Juil 2023
Hello,
I'm writing a script which calculates a value of "R" which is then compared to several inequality limits. The limits are:
R <= 1.2
1.2 < R <= 1.45
1.45 < R <= 1.66
1.66 < R <= 1.93
R > 1.93
Once R satisfies the conditional statement a subroutine is prompted and 1 of 5 subsequent scripts is run.
Is switch case or if-else better for this?
0 commentaires
Réponse acceptée
Atsushi Ueno
le 21 Mai 2021
Switch statement cannot judge the range of R. It may be possible but it must be very tricky.
if (R <= 1.2)
disp('if-else condition 1');
elseif (R <= 1.45)
disp('if-else condition 2');
elseif (R <= 1.66)
disp('if-else condition 3');
elseif (R <= 1.93)
disp('if-else condition 4');
else % R > 1.93
disp('if-else condition 5');
end
I would use this method.
index = find(R <= [1.2 1.45 1.66 1.93 inf], 1, 'first');
disp(['if-else condition ' num2str(index)]);
4 commentaires
Atsushi Ueno
le 21 Mai 2021
Thank you.
I don't know what script you are writing is. Is it MATLAB function? or other language script?
Please show something about what you are writing, at least interface...
Plus de réponses (2)
Dyuman Joshi
le 21 Mai 2021
if-else would be better in this case because you have a range of values of R (a variable).
switch is useful when you have descrete values of a variable.
0 commentaires
Stephen23
le 18 Juil 2023
"Switch statement cannot judge the range of R. It may be possible but it must be very tricky."
switch true
case R <= 1.2
disp('condition 1');
case R <= 1.45
disp('condition 2');
case R <= 1.66
disp('condition 3');
case R <= 1.93
disp('condition 4');
otherwise % R > 1.93
disp('condition 5');
end
0 commentaires
Voir également
Catégories
En savoir plus sur Live Scripts and Functions 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!