Hi, I am asking the user for input and the input should be either "AA" "Aa" or "aa". How can I validate the input using a while loop? I don't think my code works.Thanks!
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
parentOneA = input("Enter Parent 1's A Trait: ")
% Error checking input
while parentOneA ~= "AA" || parentOneA ~= "Aa" || parentOneA ~= "aa";
parentOneA = input("Enter Parent 1's A Trait: ")
end
2 Kommentare
Stephen23
am 24 Sep. 2020
Bearbeitet: Stephen23
am 24 Sep. 2020
There is no string for which this will return false:
parentOneA ~= "AA" || parentOneA ~= "Aa" || parentOneA ~= "aa";
At least two equality operators will return true, so the output will always be true because you used OR:
true || false || true -> true
Rather than writing them out individually, a better approach is to simply use strcmpi:
while ~strcmpi(parentOneA,'AA')
Antworten (1)
Sindar
am 24 Sep. 2020
You're requiring that it be all valid entries simultaneously
parentOneA = input("Enter Parent 1's A Trait: ")
% Error checking input
while parentOneA ~= "AA" && parentOneA ~= "Aa" && parentOneA ~= "aa";
parentOneA = input("Enter Parent 1's A Trait: ")
end
or
valid_inputs = {'AA';'Aa';'aa'};
parentOneA = input("Enter Parent 1's A Trait: ")
while ~any(strcmp(parentOneA,valid_inputs))
parentOneA = input("Enter Parent 1's A Trait: ")
end
1 Kommentar
Walter Roberson
am 24 Sep. 2020
while ~ismember(parentOneA, ["AA", "Aa", "aa"])
Siehe auch
Kategorien
Mehr zu Waveform Generation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!