How can i manage a wrong input, whitout restart the my script ?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Pietro Fiondella
el 22 de Jun. de 2022
Comentada: Voss
el 22 de Jun. de 2022
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 " );
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
0 comentarios
Respuesta aceptada
Voss
el 22 de Jun. de 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 comentarios
Voss
el 22 de Jun. de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Function Creation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!