How can i manage a wrong input, whitout restart the my script ?

6 visualizzazioni (ultimi 30 giorni)
I'm writing a script that works whit many input that have to be typed chosing from different possile case.
How can i re-load the question for input if a not allowed choice is typed?
For example consider this script for converting a temperature value from Celsius to Kelvin and inverse (This script works on Matlab but not here!)
clc
T=input ("Set the value of the temperature to convert " );
Unable to run the 'fevalJSON' function because it calls the 'input' function, which is not supported for this product offering.
A=input ('Choose the unit of measure (C for Celsius or K for Kelvin )', 's');
switch A
case 'C'
A= T+273.15
case 'K'
A=T-273.15
end
So, how can i manage a wrong input ?
For example if i digit 'F' instead of 'C or 'K' ant the input A=Input( 'Choose the unit of measure (C for Celsius or K for Kelvin )) i would obtain only an error message.I would like to set the script in such a way that it can automatically restart the from the missed input

Risposta accettata

Voss
Voss il 22 Giu 2022
Generally, for this method of gathering user input, you would use a while loop that iterates until the input is valid.
Something like this:
is_valid = false;
while ~is_valid
A = input('Choose the unit of measure (C for Celsius or K for Kelvin )', 's');
if ismember(A,{'C','K'})
is_valid = true;
end
end
Or, equivalently:
while true
A = input('Choose the unit of measure (C for Celsius or K for Kelvin )', 's');
if ismember(A,{'C','K'})
break
end
end
  2 Commenti
Pietro Fiondella
Pietro Fiondella il 22 Giu 2022
Thanks a lot.
And what about the first input? I men how to reset the choice for input T T=input ("Set the value of the temperature to convert " ); if i type for example 'S' or something that is not a number?
Voss
Voss il 22 Giu 2022
Try this:
while true
T = str2double(input('Set the value of the temperature to convert ', 's'));
if ~isnan(T)
break
end
end
str2double returns NaN for non-numeric input.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by