如何在Pascal中使用while循环比较字符串与整数?
像这样:
var Destination:string;
while (Destination>'11') do begin
writeln('Error');
write('Destination Number');
readln(Destination);
end;
答案 0 :(得分:0)
您必须将Destination
转换为整数:
program Project1;
uses sysutils;
var
converted: integer;
Destination: string;
begin
converted := 12;
Destination := '';
while (converted > 11) do
begin
writeln('Error');
writeln('Destination Number');
readln(Destination);
converted := StrToIntDef(Destination, 12);
end;
end.
转换例程在sysutils中是可用的:
http://www.freepascal.org/docs-html/rtl/sysutils/index-5.html
答案 1 :(得分:0)
为什么不在WHILE-DO语句中进行转换?
PROCEDURE NumberIsTooHigh;
BEGIN
WriteLn('Your number is above valid range');
write('Destination Number');
readln(Destination);
END;
其中NumberIsTooHigh只是您编写的用于处理"错误"的过程。例如:
$.when
上一个例程的原因是"错误"在第一次运行是"目的地"还没有任何价值。然后将转换变量手动设置为12,就在Ok-range之外,因此它将始终在启动时产生错误。