begin
D:=StrToFloat(Edit1.Text);
if (Edit1.Text <= '3' ) And (Edit2.Text >= '1') and (Edit3.Text = '1' ) then
begin
Edit4.Text := '6,3' ;
Edit5.Text := '11-12';
Edit6.Text := '60';
Edit7.Text := '100';
end
else
begin
if(Edit1.Text <= '3' ) And (Edit2.Text >= '1') and (Edit3.Text = '2' ) then
Edit4.Text := '3,2' ;
Edit5.Text := '9-10';
Edit6.Text := '25';
Edit7.Text := '40'
end
else
begin
if(Edit1.Text <= '3' ) And (Edit2.Text >= '1') and (Edit3.Text = '3' ) then
Edit4.Text := '1,6' ;
Edit5.Text := '8-9';
Edit6.Text := '25';
Edit7.Text := '40';
end
end;我在识别if else Delphi7语句错误Unit1.pas(73)的问题时遇到了一些麻烦:';‘预期但'BEGIN’发现了错误。
发布于 2020-05-03 03:36:41
您的代码具有不匹配的begin..end对。修正缩进,你会看得更清楚:
begin
D:=StrToFloat(Edit1.Text);
if (Edit1.Text <= '3' ) And (Edit2.Text >= '1') and (Edit3.Text = '1' ) then
begin
Edit4.Text := '6,3' ;
Edit5.Text := '11-12';
Edit6.Text := '60';
Edit7.Text := '100';
end
else
begin
if (Edit1.Text <= '3' ) And (Edit2.Text >= '1') and (Edit3.Text = '2' ) then
Edit4.Text := '3,2';
Edit5.Text := '9-10';
Edit6.Text := '25';
Edit7.Text := '40'
end
else
begin
if(Edit1.Text <= '3' ) And (Edit2.Text >= '1') and (Edit3.Text = '3' ) then
Edit4.Text := '1,6' ;
Edit5.Text := '8-9';
Edit6.Text := '25';
Edit7.Text := '40';
end您有一个错误的if..else..else序列。
我猜你是想做更多像这样的事情:
begin
D := StrToFloat(Edit1.Text);
if (Edit1.Text <= '3') And (Edit2.Text >= '1') and (Edit3.Text = '1') then
begin
Edit4.Text := '6,3' ;
Edit5.Text := '11-12';
Edit6.Text := '60';
Edit7.Text := '100';
end
else if (Edit1.Text <= '3') And (Edit2.Text >= '1') and (Edit3.Text = '2') then
begin
Edit4.Text := '3,2';
Edit5.Text := '9-10';
Edit6.Text := '25';
Edit7.Text := '40'
end
else if (Edit1.Text <= '3' ) And (Edit2.Text >= '1') and (Edit3.Text = '3') then
begin
Edit4.Text := '1,6' ;
Edit5.Text := '8-9';
Edit6.Text := '25';
Edit7.Text := '40';
end
...可以稍微简化一下,以消除冗余的比较:
begin
D := StrToFloat(Edit1.Text);
if (Edit1.Text <= '3') And (Edit2.Text >= '1') then
begin
if (Edit3.Text = '1') then
begin
Edit4.Text := '6,3' ;
Edit5.Text := '11-12';
Edit6.Text := '60';
Edit7.Text := '100';
end
else if (Edit3.Text = '2') then
begin
Edit4.Text := '3,2';
Edit5.Text := '9-10';
Edit6.Text := '25';
Edit7.Text := '40'
end
else if (Edit3.Text = '3') then
begin
Edit4.Text := '1,6' ;
Edit5.Text := '8-9';
Edit6.Text := '25';
Edit7.Text := '40';
end
...
end
...还要注意,您不能使用像<=和>=这样的运算符来比较字符串,就好像它们是数字一样。您必须首先将字符串值转换为数值。通过使用StrToFloat(),您似乎已经意识到了这一点,但后来您忽略了该值。尝试如下所示:
begin
D1 := StrToFloat(Edit1.Text);
D2 := StrToFloat(Edit2.Text);
D3 := StrToFloat(Edit3.Text);
if (D1 <= 3) And (D2 >= 1) then
begin
if (D3 = 1) then
begin
Edit4.Text := '6,3' ;
Edit5.Text := '11-12';
Edit6.Text := '60';
Edit7.Text := '100';
end
else if (D3 = 2) then
begin
Edit4.Text := '3,2';
Edit5.Text := '9-10';
Edit6.Text := '25';
Edit7.Text := '40'
end
else if (D3 = 3) then
begin
Edit4.Text := '1,6' ;
Edit5.Text := '8-9';
Edit6.Text := '25';
Edit7.Text := '40';
end
...
end
...https://stackoverflow.com/questions/61562330
复制相似问题