如何在pascal中使用while do循环比较字符串与整数?

时间:2015-05-14 02:06:34

标签: freepascal lazarus

如何在Pascal中使用while循环比较字符串与整数?
像这样:

var Destination:string;
while (Destination>'11') do begin
    writeln('Error');
    write('Destination Number');
    readln(Destination);
end;

2 个答案:

答案 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之外,因此它将始终在启动时产生错误。