Testing a created function
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Alicia Sood
le 9 Déc 2019
Commenté : Star Strider
le 9 Déc 2019
I am trying to write and test a function to determine whether a person is old enough to drink or not (with the legal age being 19).
For some reason when I test the function the code will run but not display the message that I set. How can I fix this code so that it will display the proper message?
FUNCTION:
function[ans] = drink(age)
if(age<19)
ans = 'no';
else
ans = 'yes';
end
TESTING:
clear
clc
addpath('Library')
age = input('Enter your age: ' );
ans = drink(age);
if(ans == strcmpi(ans, 'yes'))
disp('Old enough to drink')
elseif(ans == strcmpi(ans, 'no'))
disp('Not old enough to drink')
end
1 commentaire
Adam
le 9 Déc 2019
Modifié(e) : Adam
le 9 Déc 2019
Don't call variables 'ans', for starters. Also, this 'logic' is really confusing:
if(ans == strcmpi(ans, 'yes'))
...
end
Just
if( strcmp( result, 'yes' ) )
should work fine. It seems a bit odd though that you put logic in your function to return 'yes' or 'no', then more logic that effectively checks the same thing to the convert to a different string!
Réponse acceptée
Star Strider
le 9 Déc 2019
First, it is best not to use ‘ans’ as a variable, since it is the default variable and can be overwritten.
Second, the the if and elseif conditions were not coded correctly.
This works:
if strcmpi(rsp, 'yes')
disp('Old enough to drink')
elseif strcmpi(rsp, 'no')
disp('Not old enough to drink')
end
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Characters and Strings 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!