استفاده از عملگر هاي مقايسه اي :
در اين بخش چهار عملگر مقايسه اي ديگر را معرفي خواهيم كرد. در امتحان كنيد هاي بعدي با اين عملگر ها آشنا مي شويد :
)1 اگر برنامه If Demo در حال اجرا اسـت، آن را ببنديـد . قـسمت طراحـي فـرم را بـراي Form1 بـاز كنيـد، يـكTextBox به فرم اضافه كنيد و خاصيت Name آن را برابر txtValue قرار دهيد. سپس يـك Buttonديگر به فرم اضافه كرده خاصـيت Name آن را برابـر btnCheckNumber و خاصـيت Text آن را برابـرCheck Numbers قرار دهيد .
)2 روي كنترل Button دو بار كليك كنيد و كد زير را در رويداد Click آن وارد كنيد:
private void btnCheckNumber_Click(object sender,
EventArgs e)
{
// Declare variable
int intNumber = 0;
try
{
// Get the number from the text box
intNumber = Int32.Parse(txtValue.Text);
}
catch
{
}
// Is intNumber less than 27?
if (intNumber < 27)
MessageBox.Show(“Is ‘intNumber’ less than 27? ” +
“Yes!”, “If Demo”);
else
MessageBox.Show(“Is ‘intNumber’ less than 27? ” +
“No!”, “If Demo”);
}
)3 برنامه را اجرا كنيد. عددي را در TextBox وارد كرده و روي دكمه Check Numbers كليـك كنيـد . كـادرپيغامي را مشاهده خواهيد كرد كه به شما ميگويد عدد وارد شده در TextBox بزرگتر از 27 است يا نه؟ (شكل )4-4
4-4 شكل
در اين برنامه ابتدا بايد مقدار عددي وارد شده در TextBox را بدست آورد. براي اين كار ابتدا بايـد مطمـئن شـويم مـتن داخـلTextBox شامل عدد است . زيرا كاربر برنامه آزاد است كه هر متني را در اينجا وارد كند، و ممكن است مـتن وارد شـده شـاملهيچ عددي نباشد كه در اين حالت برنامه در تبديل آن به يك عدد صحي ح با شكست مواجه مي شـود و بقيـه كـد اجـرا نمـي شـود .بنابراين در اين قسمت بايد كدي را براي مديريت اين استثنا ه ا وارد مي كنيم تا اگـر كـاربر مقـداري غيـر از عـدد وارد كـرد متغييـرintNumber برابر با صفر شود، در غير اين صورت عدد وارد شده توسط كاربر در آن قرار گيرد .
// Declare variable
int intNumber = 0;
try
{
// Get the number from the text box
intNumber = Int32.Parse(txtValue.Text);
}
catch
{
}
نكته: دستور try…catch در فصل 11 به صورت كامل بررسي مي شود، بنابراين در اين قسمت ميتوانيـد از آن صـرف نظـركنيد .براي تبديل يك رشته كه شامل عدد است به يك عدد صحيح بايد از تابع Parse در Int32 استفاده كنيـد . ايـن تـابع يـكرشته را كه شامل يك عدد است دريافت كرده و عدد معادل آن را برميگرداند . اگر رشته اي كه به اين تابع فرستاده مـي شـود شـاملعدد نباشد، يا حتي داراي كاراكتري غير عددي باشد، تابع با خطا مواجه شده و اجراي برنامه متوقف مي شود .در بخش بعدي، به وسيله دستور if بررسي مي كنيد كه عدد وارد شده در TextBox بزرگتر از 27 است يا نه و بـر اسـاس آنپيغام مناسبي را به كاربر نمايش مي دهيد .
// Is intNumber less than 27?
if (intNumber < 27)
MessageBox.Show(“Is ‘intNumber’ less than 27? ” +
“Yes!”, “If Demo”);
else
MessageBox.Show(“Is ‘intNumber’ less than 27? ” +
“No!”, “If Demo”);
نكته: همانطور كه ملاحظه مي كنيد، در اين قسمت چون هم در بخش if و هم در بخش else فقـط يـك دسـتور وارد شـدهاست نيازي به استفاده از آكولاد در ابتدا و انتهاي دستور نيست .جالب اينجاست كه اگر دقيقا مقدار 27 را در TextBox وارد كنيد، گفته مي شود كه عـدد كـوچكتر از 27 نيـست . زيـرا عملگـركوچكتر فقط در صورتي مقدار true را برمي گرداند كه عدد كوچكتر باشد، نه بزرگتر يا مساوي . براي اينكه شرط بالا خـود عـدد27 را نيز شامل شود بايد از عملگر كوچكتر مساوي استفاده كنيد كه در بخش امتحان كنيد بعدي شرح داده شده است .
استفاده از عملگر كوچكتر يا مساوي
)1 كد موجود در رويداد Click مربوط به كنترل Button در قسمت قبلي را به صورت زير تغيير دهيد :
// Declare variable
int intNumber;
try
{
// Get the number from the text box
intNumber = Int32.Parse(txtValue.Text);
}
catch
{
}
// Is intNumber less than or equal to 27?
if (intNumber <= 27)
MessageBox.Show(“Is ‘intNumber’ less than or ” +
“equal to 27? Yes!”, “If Demo”);
else
MessageBox.Show(“Is ‘intNumber’ less than or ” +
“equal to 27? No!”, “If Demo”);
)2 حال برنامه را اجرا كنيد و عدد 27 را در TextBox وارد كنيد. روي دكمه Check Numbers كليـك كنيـد .كادر پيغامي مشابه شكل 4-5 نمايش داده خواهد شد .
4-5 شكل
تنها تفاوتي كه اين برنامه نسبت به برنامه قبلي دارد اين است كه شرط دستور if خود عدد 27 را نيز شامل مي شود. يعنـي اگـر درجعبه متني عدد 27 وارد كنيد، كادر پيغامي مشابه شكل 5-4 را مشاهده خواهيد كرد .دو عملگر ديگر مشابه عملگر هاي قبلي مي باشد كه در بخش بعدي آنها را بررسي خواهيم كرد .
)1 رويداد Click مربوط به كنترل Button را باز كرده و كد زير را به آن اضافه كنيد :
// Is intNumber less than or equal to 27?
if (intNumber <= 27)
MessageBox.Show(“Is ‘intNumber’ less than or” +
“equal to 27? Yes!”, “If Demo”);
else
MessageBox.Show(“Is ‘intNumber’ less than or” +
“equal to 27? No!”, “If Demo”);
// Is intNumber greater than 27?
if (intNumber > 27 )
MessageBox.Show(“Is ‘intNumber’ greater than” +
“27? Yes!”, “If Demo”);
else
MessageBox.Show(“Is ‘intNumber’ greater than” +
“27? No!”, “If Demo”);
// Is intNumber greater than or equal to 27?
if( intNumber >= 27)
MessageBox.Show(“Is ‘intNumber’ greater than” +
“or equal to 27? Yes!”, “If
Demo”);
else
MessageBox.Show(“Is ‘intNumber’ greater than” +
“or equal to 27? No!”, “If Demo”);
)2 برنامه را اجرا كنيد و مقدار 99 را در جعبه متني وارد كنيد. سپس روي دكمه Check Numbers كليك كنيد. سهكادر پيغام متوالي را مشاهده خواهيد كرد . در كادر پيغام اول گفته مي شود كه عدد كوچكتر يا مساوي 27 نيست . در كـادرپيغام دوم و سوم به ترتيب مشاهده مي كنيد كه عدد بزرگتر و همچنين بزرگتر مساوي 27 است .
عملگر هاي بزرگتر و بزرگتر مساوي دقيقا بر عكس عملگر كوچكتر و كوچكتر مساوي عمل مي كند . سـوالاتي كـه در ايـن قـسمتبراي شرط if مي پرسيد به صورت “آيا intNumber بزرگتر از 27 است؟ ” و ” آيا intNumber بزرگتر يـا مـساوي 27 است؟” خواهد بود كه بر اساس پاسخ آنها كد مربوط به شرط if اجرا مي شود .