How to add multiple if statements

조회 수: 2(최근 30일)
Jan Kyle Dismas
Jan Kyle Dismas 2021년 2월 12일
댓글: Jan Kyle Dismas 2021년 2월 12일
So i was trying to do an age calculator, so i wanted it to detect strings and numerical value, then if it detected a string it will message that ' it is invalid', but if the inputed value is in numerical, but since im still on the days of the month i wanted to limit all value inputed below 31 days and if the user input greater than 31 it will also message an error. i already had progress with the code detecting if it is a string or number, but the problem is the detecting if the number inputed is below 31
So here is the code
function [day]=bdaycalcu
disp ('What day did you born?');
day= (' ');
BdayDate= input (day, 's');
%this part detects if the user input a string or a value
if ~isnan(str2double(BdayDate))
%if the user input a value, it will also detect if it is below 31, if it is go to bmonthcalcu function
%if the user input a string it will ask again
disp('This is not a valid answer')

채택된 답변

Geoff Hayes
Geoff Hayes 2021년 2월 12일
Jan - I think that you just need to add a couple of conditions to your if statement. You would need to check that the input is numeric (which you are doing) AND is an integer (see isinteger) AND is greater than 0 AND less than our equal to 31. You can use a logical operator found here to AND your conditions.
  댓글 수: 2
Jan Kyle Dismas
Jan Kyle Dismas 2021년 2월 12일
yo , nvm i kinda got it, in my previous comment i told that i could not get the numerical value from the input, because ~isnan only detect whether there is a string in the matrix, what i did is to make an variable and use the str2double(BdayDate)) to get the numerical value, isolating the ~isnan to another variable as my logic condition. thank you!!!
% set logical condition
a= ~isnan(str2double(BdayDate));
b= day > 0;
c= day <= 31;

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by