2016-02-25 83 views
-4

有每当我在2 4 6 8 10等打字的时候想一个问题,我想有答案出来为偶数,但不能似乎找到solutioin德尔福偶奇的问题

if (Edit1.Text = '2') then 
    Edit2.Text := 'Even' 
    else 
    Edit2.Text := 'Odd' 

Tryed到除2,但总是失败。

+2

转换字符串'StrToInt'function进行编号,然后应用'Odd'function。别忘了阅读一​​本关于Delphi/Pascal语言的书。 – MBo

回答

6

您需要首先在文本框中的文本转换为数值型像Integer,然后通过2(整数除法的余数)模量比较该值:

var 
    value: Integer; 
begin 
... 
    value := StrToInt(Edit1.Text); 
    if ((value mod 2) = 0) then 
    Edit2.Text := 'Even' 
    else 
    Edit2.Text := 'Odd'; 
... 
end; 

有很好的和短

mod运营商在这里解释

mod(模数)将两个数字相除并仅返回 是整数的余数。例如,表达式a:= 13 mod 4;将 评估为1a=1),而b := 12 mod 4;将评估为0b=0)。

+0

谢谢一切正常:) – Deivids

+0

也请看下面的David的答案,它的同一个操作的较短版本。我还建议你找一本关于Delphi的Marco Cantu的书(例如'Essential Pascal'和'Essential Delphi',网址是http://www.marcocantu.com/edelphi/default.htm)。 – quasoft

+0

mod的文档位于:http://docwiki.embarcadero.com/RADStudio/en/Expressions_(Delphi)#Arithmetic_Operators –

11

将文本转换为整数,并使用Odd功能:

if Odd(StrToInt(Text)) then 
    // the value is odd