عملگرهای مقایسه ای (رابطه ای)

این عملگرها دو عبارت را بایکدیگر مقایسه کرده و نتیجه را باز می گردانند. نتیجه می تواند درست (true) یا غلط (false) باشد. همانطور که قبلا نیز گفته شد در کامپایلرهای جدید C++ نوع داده bool اضافه شده است و بنابراین نتیجه این عملگرها یک مقدار bool است. اما در کامپایلرهای قدیمیتر، نتیجه این عملگرها یک عدد صحیح است که درصورت درست بودن 1 و درصورت غلط بودن 0 باز می گردانند. این عملگرها عبارتند از:






نکته مهمی که باید به آن دقت کرد عملگر مساوی (==) است، چرا که یک اشتباه بسیار متداول برنامه نویسان C استفاده اشتباه از عملگر انتساب (=) بجای عملگر تساوی (==) است که باعث ایجاد خطا در برنامه می شود.
اولویت این عملگرها از بالا به پایین بشرح زیر است:
3 عملگرهای <، > ، =< و = >
4 عملگرهای == و =!
لازم بذکر است که در هنگام مساوی بودن اولویت چند عملگر، این عملگرها از چپ به راست محاسبه می گردند.
عملگرهای منطقی
این عملگرها به شما اجازه می دهند که شرطهای ساده ای را که با استفاده از عملگرهای مقایسه ای ایجاد شده اند را با یکدیگر ترکیب نموده و شرطهای پیچیده تری را بسازید. این عملگرها عبارتند از :




همانطور که قبلا نیز گفته شد مقدار بازگشتی این عملگرها، درست (1) یا نادرست (0) می باشد. اولویت این عملگرها بترتیب عبارتست از :

1- عملگر !

2- عملگر &&

3- عملگر ||

عملگر شرطی

گاهی لازم است که ابتدا یک شرط بررسی شده و سپس برمبنای نتیجه (درست یا نادرست بودن آن) یکی از دو عبارت ممکن بازگردانده شود. گرچه معمولا برای اینکار از دستور if (که در فصل بعدی بحث شده است) استفاده می شود، اما یک عملگر 3تایی (با 3 عملوند) نیز برای آن وجود دارد. شکل کلی این عملگر بصورت زیر است:

عبارت2 : عبارت1 ? شرط

نحوه کار بدینصورت است که درصورت درست بودن شرط عبارت1 و در غیراینصورت عبارت 2 بازگردانده می شود. مثال :
کد:
a = (k<10) ? 100 : 50;
که این عبارت معادل دستور زیر است:
کد:
if(k<10) a=100;
else a=50;
البته این عبارت به شکلهای پیچیده نیز می تواند مورد استفاده قرار گیرد. مثلا :

کد:
c += (a>0 &&a<10) ? ++a : a/b;
که معادل است با :
if (a>0 &&a<10) {
a= a + 1;
c = c + a;
}
else c = c + a/b;
که البته توصیه می شود از این عبارات پیچیده استفاده نشود.


ادامه دارد.........

کلیه حقوق بخش عملگر ها مربوط یه Master Company است