Logic
عملگر Mod
این عملگر باقیمانده تقسیم دو عدد را بر هم بر می گرداند مثلا وقتی بخواهید ببینید که عددی زوج است، آنرا بر 2 تقسیم می کنید و اگر باقیمانده اش بزرگتر از 0 باشد آن عدد عددی زوج است.
مثلا:
if 4 mod 2=0 then .....
یعنی اگر عدد 4 زوج بود پس ...، یا مثلا فرض کنید داخل متغییر A، عددی وجود ارد و نمی دانیم عدد چند است، طی خط دستور زیر اگر عدد زوج باشد، پیام Zoj صادر خواهد شد، و اگر نه پیام Fard صادر خواهد شد:
if A mod 2=0 then msgbox "Zoj" else mesbox "Fard"
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
result = number1 Mod number2
مقدار برگشتی این تابع یک عدد ست و دو آرگومان یا پارامتر دارد که هر دو عددی هستند.
ملاحظات
عملگر باقیمانده عدد اول را بر عدد دوم تقسیم می کند (اعداد ممیز شناور را گرد می کند تا اعداد صحیح) و فقط باقیمانده را به عنوان نتیجه برمی گرداند. به عنوان مثال، در عبارت زیر، A (نتیجه) برابر با 5 است.
A = 19 Mod 6.7
Example:
Dim MyResult
MyResult = 10 Mod 5 ' Returns 0.
MyResult = 10 Mod 3 ' Returns 1.
MyResult = 12 Mod 4.3 ' Returns 0.
MyResult = 12.6 Mod 5 ' Returns 3.
عملگر And
این عملگر دو پارامتر می گیرید و اگر هر دو پارامتر درست باشند نتیجهدرست بر می گرداند.
مثلا شما می خواهید اگر عددی زوج و بزرگتر از 10 بود پیام دهید ZojBozorg و اگرنه پیامی صادر نشود:
if (A mod 2=0) AND (A>10) then msgbox "ZojBozorg"
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
result = expression1 And expression2
ملاحظات
اگر هر دو عبارت True ارزیابی شوند، نتیجه True است. اگر هر یک از عبارت ها به False ارزیابی شود، نتیجه False است. این جدول زیر نحوه تعیین نتیجه را نشان می دهد:
True AND True ::Result:True
True AND False ::Result:False
True AND Null ::Result:Null
False AND True ::Result:False
False AND False ::Result:False
False AND Null ::Result:False
Null AND True ::Result:Null
Null AND False ::Result:False
Null AND Null ::Result:Null
Example:
Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null ' Initialize variables.
MyCheck = A > B And B -> C ' Returns True.
MyCheck = B > A And B -> C ' Returns False.
MyCheck = A > B And B -> D ' Returns Null.
عملگر OR (یا)
اگر دو پارامتر به این عملگر بدهیم باید و یکی از آنها درست ارزیابی شود، نتیجه برگشتی این تابع درست، خواهد بود.
Or Operator
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
result = expression1 Or expression2
The Or operator syntax has these parts:
ملاحظات
اگر تنها یکی از دو عبارت True ارزیابی شوند یا هر دو عبارت True ارزیابی شوند، نتیجه True است. اگر هر دو عبارت ها به False ارزیابی شود، نتیجه False است. این جدول زیر نحوه تعیین نتیجه را نشان می دهد:
If expression1 is And expression2 is Then result is
True OR True 'True
True OR False 'True
True OR Null 'True
False OR True 'True
False OR False 'False
False OR Null 'Null
Null OR True 'True
Null OR False 'Null
Null OR Null 'Null
Example:
Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null ' Initialize variables.
MyCheck = A > B Or B > C ' Returns True.
MyCheck = B > A Or B > C ' Returns True.
MyCheck = A > B Or B > D ' Returns True.
MyCheck = B > D Or B > A ' Returns Null.
عملگر Xor (فقط یکی درست)
Xor Operator
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
[result =] expression1 Xor expression2
ملاحظات
اگر فقط یکی از دو عبارت به درست ارزیابی شود، نتیجه True است(دقت کنید فقط یکی از دو عبارت یعنی اگر هر دو دست باشند، دیگر نتیجه درست نیست). با این حال، اگر هر یک از عبارت ها تهی باشد، نتیجه نیز پوچ است. زمانی که هیچ کدام از عبارت ها تهی نباشد، نتیجه مطابق جدول زیر تعیین می شود:
True True False
True False True
False True True
False False False
Example:
Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null ' Initialize variables.
MyCheck = A > B Xor B > C ' Returns False.
MyCheck = B > A Xor B > C ' Returns True.
MyCheck = B > A Xor C > B ' Returns False.
MyCheck = B > D Xor A > B ' Returns Null.
عملگر Not
If Not
این عملگر وضعیت را معکوس به نتیجه می رساند، مثلا می خواهیم اگر وضعیتی برقرار نباشد دستوری اجرا شود، همانطور که می دانید در دستور IF از ELSE استفاده می کنیم:
if (B) then
'nothing
else
'more commands
'more commands
'more commands
endif
اکنون می تونید خطوط بالا را به شکل زیر تغییر دهید:
if NOT (B) then
'more commands
'more commands
'more commands
endif
عملگر Like (شبیه به ...)
در مقایسه جملات از عبارتهایی مانند * و ? استفاده هایی می شود.
این عبارتها تفاسیری دارند:
* یعنی هر جمله ای، مثلا: *Ali یعنی بعد از Ali هر جمله ای که وجود داشت، یا به عبارتی دیگر: یعنی هر جمله ای که با Ali شروع شود، یعنی AliReza، Ali reza، Alijan
؟ یعنی هر کاراکتر یا هر حرفی، در این مدل تعداد کاراکترها با تعداد ؟ ها تعیین می شود، مثلا: ??Ali، یعنی جمله ای که حتما بعد از Ali دو کاراکتر یا حرف باشد، مثلAlireT در این مثال Alireza جز مجموعه ??Ali، واقع نخواهد شد، اگر می خواهید Alireza جز مجموعه باشد باشد باید از عبارت ????Ali استفاده کنید.
# یعنی یک عدد مثل 1و2و3 و ...و9
برای اینکه جمله ای را با عبارتی از این قبیل عبارتها مقایسه کنید از هیچیک از عملگرهای قبلی نمی توان استفاده کرد، مثلا:
if "Ali????"="AliReza" then msgbox "OK" else "NO"
نتیجه درستور بالا "NO" خواهد بود، چون دو عبارت "????Ali"و "AliReza" با هم برابر نیستند.
برای مقایسه این دو عبارت به صورتی که توضیح دادم، یاد از عملگر Like استفاده کنید.
Like operator
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
result = string Like pattern
اگر رشته با الگو مطابقت داشته باشد، نتیجه True است. اگر مطابقت وجود نداشته باشد، نتیجه نادرست است. اگر رشته یا الگوی تهی باشد، نتیجه صفر است.
رفتار عملگر Like به عبارت Option Compare بستگی دارد. مقایسه رشته پیش فرض روش برای هر ماژول گزینه مقایسه باینری است.
تطبیق الگوی داخلی ابزاری همه کاره برای مقایسه رشته ها فراهم می کند. ویژگی های تطبیق الگو اجازه می دهد شما می توانید از کاراکترهای عام، لیست کاراکترها یا محدوده کاراکترها در هر ترکیبی برای مطابقت با رشته ها استفاده کنید.
این جدول زیر کاراکترهای مجاز در الگو و آنچه که مطابقت دارند را نشان می دهد:
? Any single character.
* Zero or more characters.
# Any single digit (0–9).
[charlist] Any single character in charlist.
[!charlist] Any single character not in charlist.
Example:
Dim Name As String
Name = InputBox("Enter your name")
Find out if user's name begins with a J
If sName$ Like "J*" Then
(code segment)
End If
عملگر Is
گاهی اوقات عبارتها را با هم مقایسه نمی کند بلکه اشیاء را با هم مقایسه می کنید، در چنین شرایطی عملگر IS کارائی خواهد داشت.
Used to compare two object reference variables.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
result = object1 Is object2
The Is operator syntax has these parts:
Part Description
result Required; any numeric variable.
object1 Required; any object name.
object2 Required; any object name.
Remarks
If object1 and object2 both refer to the same object, result is True; if they do not, result is False. Two variables
can be made to refer to the same object in several ways.
Example:
MyCheck = YourObject Is ThisObject ' Returns True.
MyCheck = ThatObject Is ThisObject ' Returns False.