| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1157 人关注过本帖
标题:为什么老说IF...THEN出错??
只看楼主 加入收藏
lfkm
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-4-19
结帖率:100%
收藏
 问题点数:0 回复次数:2 
为什么老说IF...THEN出错??
procedure TForm1.Button1Click(Sender: TObject);
var
   i:string;u,money:string;
begin
   i:=edit1.text ;
   u:=edit2.text;
   if i<1000 then----红条老在这里出现.错误提示是说 Incompatible type:'string'and'integer'
      money=i-u;
      else if i>1000 and i<=2000 then
      money=(i-u)*0.9 ;
      else
end;
end.
请高手解释下是什么意思....谢谢...
还有这段代码没有出错的地方了吧?
是不是edit控件类型不符?要怎么写才行?

[[it] 本帖最后由 lfkm 于 2008-4-21 17:34 编辑 [/it]]
搜索更多相关主题的帖子: THEN string Sender procedure var 
2008-04-21 17:00
hackergirl
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-3-18
收藏
得分:0 
你的Pascal语言好差哦.比我还差,看你写的代码,你以前是学C的吧?
原因是因为类型不同,就应该把 i 这个变量转为整开再判断.
像下面这样应该就不会错了.


procedure TForm1.Button1Click(Sender: TObject);
var
   i,u:Integer;        //把i和u声明为整型;
   money:Single;       //把money声明为实型;
begin
   i:=StrToInt(edit1.text) ;   //把Edit1.Text转为整型再赋给变量i; 注意,Edit里你要限制输入的内容,否则容易出错.
   u:=StrToInt(edit2.text);    //把Edit1.Text转为整型再赋给变量u;
   if i<1000 then              //你的问题就出在这里.字符型怎么能跟整开比效呢?
      money:=i-u                              //注意,这里不能加分号;
   else if (i>1000) and (i<=2000) then        //这里要加括号,注意他们的优先级.
      money:=(i-u) * 0.9 ;                    //由于这里是实数相乘,所以money要声明为实型.
end;
2008-04-22 15:34
linanguyu
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2008-4-21
收藏
得分:0 
呵呵,我以前也是学C的,Pascal语言没学过,也经常犯这种错
2008-04-23 15:07
快速回复:为什么老说IF...THEN出错??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013199 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved