フィルターのクリア

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

1 回表示 (過去 30 日間)
Pietro Fiondella
Pietro Fiondella 2022 年 6 月 22 日
コメント済み: Voss 2022 年 6 月 22 日
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

採用された回答

Voss
Voss 2022 年 6 月 22 日
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 件のコメント
Pietro Fiondella
Pietro Fiondella 2022 年 6 月 22 日
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 2022 年 6 月 22 日
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.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by