求delphi大牛知道,这个求m和n之间不能能被4整除的数的小程序哪里错了呢?

442关注3360浏览

procedure TForm1.btn1Click(Sender: TObject);var
m, n, j : Integer;
str : String;
begin
m := StrToInt(Edit1.Text);
n := StrToInt(Edit2.Text);
str := '';
for j:=m+1 to n-1 do begin
if (j

共4条回答
  • Kenneth
    7年前

    程序员可以预见和处理的问题,就不要用异常处理了吧,这个问题其实很简单,第一,如果edit1和edit2为空时就不进入循环。第二,分别在edit1和edit2的退出事件中用trystrToint()函数检查一下输入字符是否合法,就可以了,轻易的抛出异常,是不可取的,因为异常框中的提示多是洋文,一般用户根本搞不懂,只能骂娘了。

    0 19

  • Natalie
    7年前

    程序本身没有错,你检查一下是不是你在运行的时候,在edit1和2中输入数字输入错了,那只能输入普通的数字比如10或234之类的
    另外你的str没有间隔,Continue用法也不是太适合(虽然运行没错),建议改成
    for j:=m+1 to n-1 do
    begin
    if (j mod 4)<>0 then str := str + IntToStr(j)+',';
    end;

    0 13

  • Everly
    7年前

    iohjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjhnojl

    0 10

  • 一言堂
    7年前

    m := StrToInt(Edit1.Text);
    n := StrToInt(Edit2.Text);
    改为下面这样,有错就提示,非常人性。
    if not trystrtoint(edit1.text, m) then
    begin
    showmessage('你输入的EDIT1不能转换为整数,请重新输入!');
    Exit;
    end;
    if not trystrtoint(edit2.text,

    0 8

发送