Pascal重复一个程序,直到字符串变量为空

Pascal重复一个程序,直到字符串变量为空,pascal,Pascal,所以我正在为pascal编写一个程序,它要求我重复这个程序,直到输入no name 因此,我发现pascal中null/empty的含义是'我尝试了不同的代码这是我最后一次尝试的代码 program Lunch; Const Dues_Percentage1=0.3; Dues_Percentage2=0.2; Var Name:String; Age:Integer; Lunch_Money:Real; Dues:Real;

所以我正在为pascal编写一个程序,它要求我重复这个程序,直到输入no name

因此,我发现pascal中null/empty的含义是
'
我尝试了不同的代码这是我最后一次尝试的代码

program Lunch;
Const
  Dues_Percentage1=0.3;
    Dues_Percentage2=0.2;
    Var
      Name:String;
      Age:Integer;
      Lunch_Money:Real;
      Dues:Real;
begin
  While Name <> '' Do
  Writeln('Please Enter Your Name');
  Read(Name);
  Writeln('Please Enter Your Age');
  Read(Age);
  Writeln('Please Enter The Amount of Money You Receive');
  Read(Lunch_Money);
  If Age >10 then
  Dues:= Lunch_Money*Dues_Percentage1
  else
  Dues:= Lunch_Money*Dues_Percentage2;
  Writeln('The Amount Of Lunch Money You Receive is $',Lunch_Money:4:2);
  WriteLn('The Amount Of Dues You will pay Is $',Dues:3:2);
  Readln(Dues,Lunch_Money);
end.
节目午餐;
常数
会费百分比1=0.3;
会费百分比2=0.2;
变量
名称:字符串;
年龄:整数;
午餐钱:真的;
会费:真实;
开始
而名称“”可以
Writeln('请输入您的姓名');
读(姓名);
Writeln('请输入您的年龄');
阅读(年龄);
Writeln(“请输入您收到的金额”);
阅读(午餐钱);
如果年龄>10岁,则
会费:=午餐费*会费百分比1
其他的
会费:=午餐费*会费百分比2;
书面形式(“您收到的午餐金额为美元,午餐金额:4:2);
书面形式(“您将支付的会费金额为美元”,会费:3:2);
Readln(会费、午餐费);
结束。

如果你使用while循环,你需要在进行测试之前初始化“Name”(然后在循环中的下一次测试之前阅读它)。例如:

 var
   Name : string;
 begin
   //Initialise Name
   readln(Name);
   while Name <> '' do
   begin
     // do stuff here
     // and here
     //then read the next name
     readln(Name);
   end;
 end;
var
名称:字符串;
开始
//草签姓名
readln(姓名);
而名称“”可以
开始
//在这里做事
//这里呢
//然后读下一个名字
readln(姓名);
结束;
结束;
请注意,while只执行下一条语句(如果条件为true),因此如果希望while执行多条语句,则需要使用复合语句

如果使用“重复”,直到可能需要稍微不同的结构:

 var
   Name : string;
 begin
   repeat
     readln(Name);
     if Name <> '' then
     begin
        // do stuff here
        // and here
     end;
   until Name = '';
 end;
var
名称:字符串;
开始
重复
readln(姓名);
如果名称为“”,则
开始
//在这里做事
//这里呢
结束;
直到Name='';
结束;

而且它不起作用
不是很精确。你可能想读一下begin..end复合语句。当我看到它不起作用时,我的不好之处在于,无论我输入名称还是留空,程序本身都不会像应该的那样重复,我不确定你所说的begin-end compund语句是什么意思,
。。。do
仅重复紧接其后的语句。如果要重复多个语句,必须将它们括在
begin..end
中,例如,
而Name“”确实开始写入(…;读取(…);end;
。好的,我明白了,让我试试吧。我想,很抱歉,我一直在睡觉。如果我在相同条件下使用了“重复到”语句,会怎么样?行吗?谢谢broski,但我已经得到了答案:D无论如何,谢谢tho