Filter löschen
Filter löschen

Weird problem in while loop: What is wrong with the input "48" compared to "47" and "49"????

1 Ansicht (letzte 30 Tage)
Hi everyone!
I have a weird problem in a while loop with user input:
Within the while loop, the user is asked for the input of a number to be assigned to the variable insnr:
1113 insnr = '0';
1114 while insnr == '0';
1115 insnr = input('Inselnummer [1 ... 999] ? ');
1116 answer = isempty (insnr);
1117 while answer == 1;
1118 disp('Gebe eine gültige Inselnummer ein [1 ... 999] !!!');
1119 insnr='0';
1120 answer = isempty (insnr);
1121 end
1122 end
The code works fine for any number but the number "48".
Execution when using e.g. with the input "47" is as follows:
line 1113 [insr =’0’ char] --> 1114 --> 1115 insnr=47 [insnr=47 double] --> 1116 [answer=0] --> 1122 --> proceed with code properly at line 1123
A check on the input variable insnr yields:
K>> whos(insnr)
Name Size Bytes Class Attributes
insnr 1x1 8 double
Execution when using "48" is magically as follows:
line 1113 [insr =’0’ char] --> 1114 --> 1115 insnr=47 [insnr=47 double] --> 1116 [answer=0] --> 1122 --> 1115 and keeps on returning to this line until I use a number different from 48, e.g. 49
if I check on the input variable insnr:
K>> whos(insnr)
Name Size Bytes Class Attributes
insnr 1x1 8 double
Hence, it looks o.k.
Any idea what could be the problem here with the number "48" ... maybe a Hitchhiker's Guide to the Galaxy issue???
Thanks in advance.
Best, Magie

Akzeptierte Antwort

Matt J
Matt J am 11 Okt. 2022
Bearbeitet: Matt J am 11 Okt. 2022
It's because 48 is the ASCII code for '0'.
double('0')
ans = 48
char(48)
ans = '0'
48=='0'
ans = logical
1
  5 Kommentare
Matt J
Matt J am 11 Okt. 2022
Wow! Thanks a lot. That's the solution.
You're quite welcome, but please Accept-click the answer to indicate so.
magie
magie am 11 Okt. 2022
Accept-click done. Took some time to find the button.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by