How to use if statement to compare strings

So I have an input statement to enter a gender that asks the user to input m for male and f for female. I only want the user to input either m or f. I have:
if genderInput ~= m || genderInput ~= f
genderInput = input('Please enter a valid input.\n');
end
but it doesn't work. Why doesn't it work?

1 件のコメント

Dennis
Dennis 2018 年 11 月 5 日
it is not clear if m and f are the strings you want to compare with or if they are variables holding the string.
For comparing strings in the first place you might want to use
strcmp or strcmpi

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

回答 (2 件)

Bruno Luong
Bruno Luong 2018 年 11 月 5 日
編集済み: Bruno Luong 2018 年 11 月 5 日

0 投票

if isempty(genderInput) || (lower(genderInput(1)) ~= 'm' || lower(genderInput(1)) ~= 'f')
genderInput = input('Please enter a valid input.\n');
end

1 件のコメント

Bruno Luong
Bruno Luong 2018 年 11 月 5 日
編集済み: Bruno Luong 2018 年 11 月 5 日
The code can accept both format short ('m' 'f'} or long {'male' 'female'}, lower-case as well as upper-case based on the first character.

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

Stephen23
Stephen23 2018 年 11 月 5 日

0 投票

gI = '';
while ~ismember(gI,{'m','f'})
gI = input('Enter gender: ','s');
end

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

製品

リリース

R2018a

質問済み:

PJ
2018 年 11 月 5 日

編集済み:

2018 年 11 月 5 日

Community Treasure Hunt

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

Start Hunting!

Translated by