Testing a created function

16 ビュー (過去 30 日間)
Alicia Sood
Alicia Sood 2019 年 12 月 9 日
コメント済み: Star Strider 2019 年 12 月 9 日
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 件のコメント
Adam
Adam 2019 年 12 月 9 日
編集済み: Adam 2019 年 12 月 9 日
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!

サインインしてコメントする。

採用された回答

Star Strider
Star Strider 2019 年 12 月 9 日
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 件のコメント
Alicia Sood
Alicia Sood 2019 年 12 月 9 日
Noted, thank you!
Star Strider
Star Strider 2019 年 12 月 9 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with MATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by