PDA

View Full Version : سوال: مقایسه کوچک و بزرگ بودن در Case Of



loo30fer
سه شنبه 10 آبان 1390, 02:54 صبح
سلام
تو Case Of امکان مقایسه کوچک و بزرگ بودن عدد مانند شرطی وجود داره یا نه؟
چون به هرشکلی نوشتم نشد و در آخر تنها راهی که به ذهنم رسید مقایسه بدین شکل بود :

function Min(const A, B: Integer): Integer;
begin
if A <= B then
Result := 1
else
Result := 2;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
Case Min(15,16) of
1: ShowMessage('<=');
2: ShowMessage('=>');
end;end;

daneshmand1354
سه شنبه 10 آبان 1390, 09:07 صبح
case of فقط نوع integer یا char را قبول میکنه
برای مقایسه باید از دستور if استفاده کنید مثلا
if a<b then begin
...
end else if a=b then begin
...
end else if a>b then begin
...
end;

SAASTN
سه شنبه 10 آبان 1390, 09:08 صبح
راستش من درست متوجه منظور شما نشدم، ولی اون کد رو میشه به روش های دیگه هم نوشت، مثل:
var
A, B: Integer;
begin
// 1
case A <= B of
True: ShowMessage('<=');
False: ShowMessage('>');
end;

// 2
case B - A of
-MaxInt .. -1: ShowMessage('>');
0 .. MaxInt: ShowMessage('<=');
end;

// 3
ShowMessage(StrUtils.IfThen(A <= B, '<=', '>'));

vcldeveloper
سه شنبه 10 آبان 1390, 15:04 عصر
case of فقط نوع integer یا char را قبول میکنه
case تمامی انواع داده ordinal را قبول میکنه؛ یعنی اعداد، کارکتر، مقادیر بولی، و enum ها.