Testing a created function

16 visualizaciones (últimos 30 días)
Alicia Sood
Alicia Sood el 9 de Dic. de 2019
Comentada: Star Strider el 9 de Dic. de 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 comentario
Adam
Adam el 9 de Dic. de 2019
Editada: Adam el 9 de Dic. de 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!

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 9 de Dic. de 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 comentarios
Alicia Sood
Alicia Sood el 9 de Dic. de 2019
Noted, thank you!
Star Strider
Star Strider el 9 de Dic. de 2019
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by