سلام به همه دوستان و همراهان وب سایت ITSI.IR در آموزش جاوا .
در این درس میخواهیم شما را با محاسبات در جاوا و سپس با عملگرهای برابری و در آخر هم با عملگرهای برابری و رابطه ای آشنا کنیم .
در اکثر برنامه ها محاسبات ریاضی انجام می شوند و این محاسبات بستگی به نوع زبان برنامه نویسی کمی با هم تفاوت دارند . عملگرهای محاسباتی اکثرا باینری هستند چون هر عملگر در میان دو عملوند قرار میگیرد .
دوستان عزیز زیاد به کلمات عملگر و عملوند توجه نکنید و مفهومی متوجه این موارد شوید . عملگر به طور مثال جمع ، ضرب ، تفریق و … و عملوند هم که اعدادی هستند که استفاده می شوند .
در جدول زیر ما لیست عملگرهای محاسباتی را برای شما قرار داده ایم :

درس پنجم : محاسبات | تقدم عملگرها | عملگرهای برابری و رابطه ای

عملگر های محاسباتی در جاوا

دقت کنید که نتیجه یک عمل تقسیم صحیح یک عدد صحیح خروجی میدهد . مثلا اگر ما داشته باشیم 5/3 به ما 1 را برمیگرداند و تقسیم 19/4 برای ما 4 را برمیگرداند . کلا بخش های اعشاری در تقسیم های صحیح حذف می شوند . عملگر دیگر ما باقیمانده میباشد % که برای ما باقیمانده را برمیگرداند . مثلا همان 5/3 برای ما 2 و 19/4 عدد 3 را برمیگرداند .

اگر در عبارتی ما چندین رابطه ی ریاضی داشته باشیم از پرانتزها استفاده می کنیم :

مثلا عبارت زیر را در نظر بگیرید :

b * ( a + c )

در این عبارت چون a + c در داخل پرانتز هستند اول جمع می شوند و سپس با مقدار b ضرب می شوند .
و یا مورد زیر :

(( c + p ) + d )

در مورد خط بالا چون دو پرانتر تو در تو داریم اول پرانتز داخلی انجام می شود یعنی c + p و سپس مقدار آنها با d جمع زده میشود .

تقدم عملگرها :

در جاوا ما یک سری قوانین برای تقدم عملگر ها داریم که کدام زودتر اجرا شوند .
مثلا اولا ضرب و تقسیم و باقیمانده هستند که دارای تقدم برابر هستند و اگر عبارتی شامل این موارد باشد اولویت از سمت چپ به راست میباشد .
عملگر های جمع و تفریق هم دارای اولویت یکسانی هستند و در رده دوم قرار میگیرند و همانند مورد بالا اگر در یک رابطه باشند از سمت چپ به راست انجام می شوند .
در جدول زیر برای شما یک سری از این قوانین را نمایش داده ایم :

درس پنجم : محاسبات | تقدم عملگرها | عملگرهای برابری و رابطه ای

تقدم عملگرهای محاسباتی

عملگرهای رابطه ای و برابری :این نوع عملگر ها را باید به این صورت توضیح بدهم . مثلا ما یک شرط داریم که اگر true و یا false بود عملی را انجام دهند . این مورد را ما با ذکر یک مثال در پایین مفصل توضیح می دهیم .
در جاوا ما یک ساختار انتخابی به نام if داریم . این if گرامی ما اگر یه سری دستورات داخل آن و یا همان شرط آن درست باشد ، کارهایی را انجام می دهد و اگر درست نباشد یک سری دیگر دستورات را انجام می دهد و یا از بلاک if خارج می شود . ( در دروس آینده توضیحات کاملی را در مورد ساختار if برای شما ارائه می دهم )
از شرط هایی که در if به کار می روند می تواند به عملگرهای برابری ( == ، != ) و یا رابطه ای ها (>= , < , > , <= ) اشاره کرد .
البته ما برای شما در جدولی دیگر در پایین تمامی این عملگرهای رابطه ای و برابری را نمایش داده ایم .
لازم به ذکر است که عملگر های رابطه دارای اولویت یکسان هستند و از چپ به راست ارزیابی میشوند .
عملگرهای برابری هم دارای اولویت یکسانی هستند و آن ها هم از چپ به راست ارزیابی می شوند .

درس پنجم : محاسبات | تقدم عملگرها | عملگرهای برابری و رابطه ای

عملگرهای برابری و رابطه ای

خب بریم یک مثال ساده بزنیم .
براساس آنچه در درس دوم داشتیم برنامه NetBeans را اجرا کنید ، می خواهیم کمی کد بزنیم .
کدهای زیر را وارد کنید تا بعد از آن توضیحات را برای شما ارائه بدم

package java_lesson5;
import java.util.Scanner;
/**
 *
 * @author ITSI.IR
 */
public class Java_lesson5 {

    public static void main(String[] args) {
       
        Scanner myInput = new Scanner(System.in);
        
        int number1 ;
        int number2;
        
        System.out.print("Enter First Number :");
        number1 = myInput.nextInt();
        
        System.out.print("Enter Second Number :");
        number2 = myInput.nextInt();
        
         if(number1 == number2 )
            System.out.printf("%d == %d\n", number1 , number2);
        
        if(number1 != number2 )
            System.out.printf("%d != %d\n", number1 , number2);
        
        if(number1 < number2 )
            System.out.printf("%d < %d\n", number1 , number2);
                
        if(number1 > number2 )
            System.out.printf("%d > %d\n", number1 , number2);
                        
        if(number1 <= number2 )
            System.out.printf("%d <= %d\n", number1 , number2);
                                
        if(number1 >= number2 )
            System.out.printf("%d >= %d\n", number1 , number2);
    }
    
}

خروجی های برنامه ما در سه نوبت به صورت زیر است :

درس پنجم : محاسبات | تقدم عملگرها | عملگرهای برابری و رابطه ای

خروجی وقتی هر دو عدد برابر باشند

درس پنجم : محاسبات | تقدم عملگرها | عملگرهای برابری و رابطه ای

خروجی عدد اول کوچکتر از عدد دوم

درس پنجم : محاسبات | تقدم عملگرها | عملگرهای برابری و رابطه ای

خروجی عدد اول بزرگتر از عدد دوم

در این برنامه موارد مشترک با دروس قبلی را خلاصه وار توضیح می دهیم و فقط به موارد جدید می پردازیم .

import java.util.Scanner;

این خط از برنامه که قبلا توضیح دادیم نشان می دهد که از کلاس Scanner می خواهیم استفاده کنیم.

public class Java_lesson5 {
    public static void main(String[] args) {

تعریف کلاس و متد main

Scanner myInput = new Scanner(System.in);
   
        int number1 ;
        int number2;

ایجاد یک شی از کلاس Scanner با نام myInput
تعریف دو متغیر number1 , number2 از نوع int

System.out.print("Enter First Number :");
        number1 = myInput.nextInt();
        
        System.out.print("Enter Second Number :");
        number2 = myInput.nextInt();

نمایش یک عبارت به کاربر برای وارد کردن عدد و دریافت عدد با استفاده از متد nextint() و قرار دادن آن در متغیر number1 و همچنین همین موارد برای number2
( دوستان اگر از این موارد خیلی سریع میگذرم بخاطر این است که در دروس قبل کامل توضیح داده شده است و نیاز نیست آموزش را طولانی کنیم )
خب به سراغ موارد جدید می رویم :

if(number1 == number2 )
           System.out.printf("%d == %d\n", number1 , number2);
       
       if(number1 != number2 )
           System.out.printf("%d != %d\n", number1 , number2);
       
       if(number1 < number2 )
           System.out.printf("%d < %d\n", number1 , number2);
               
       if(number1 > number2 )
           System.out.printf("%d > %d\n", number1 , number2);
                       
       if(number1 <= number2 )
           System.out.printf("%d <= %d\n", number1 , number2);
                               
       if(number1 >= number2 )
           System.out.printf("%d >= %d\n", number1 , number2);

در این خطوط ابتدا داخل شرط if ما مقادیر number1 , number2 بر اساس مساوی بودن ( == ) مخالف بودن ( != ) کوچکتر ( < ) بزرگتر ( > ) کوچکتر یا مساوی ( <= ) بزرگتر یا مساوی ( >= ) بررسی می شوند و هرکدام از شروط که برقرار شد و یا به عبارتی true شد در بخش printf بر اساس فرمت قرار داده شده اقدام به چاپ مقادیر میکند و اگر شرط برقرار نبود و false شد به if بعدی می رود و در آخر هم بعد از بررسی if و شرط آخر برنامه خاتمه می پذیرد .
در مورد %d توضیح دادیم قبلا ولی بدانید برای نمایش مقادیر عددی صحیح بکار می رود .
\n را نیز که گفتیم همان کار Enter و رفتن به خط بعد را انجام می دهد .

دقت کنید بین عملگر ها فاصله قرار ندهید زیرا با پیغام خطا مواجه می شود مثلا ( > = ) اشتباه است
همچنین عملگرها را معکوس تایپ نکنید . مثلا ( =! و =< ) اشتباه است .
یادتان باشد عملگر رابطه ای == با عملگر تخصیص = کاملا متفاوت میباشند .
یک نکته دیگر که باید یادتان باشد و بدانید این است که اگر بلاک if ما شامل یک خط کد باشد می تواند بدون براکت نوشته شود همانند موارد بالا ولی اگر بیش از یک دستور داشته باشد باید در داخل { } قرار داده شوند زیرا اگر { } برای چند دستور if قرار داده نشود تنها خط اول بررسی میشوند و دیگر خط ها در نظر گرفته نمیشود و برنامه شما دچار مشکل و خطا میشود .
برای شما در جدول زیر یک نمای کلی از تقدم عملگر را قرار میدهم و این درس را به پایان میرسانم .

درس پنجم : محاسبات | تقدم عملگرها | عملگرهای برابری و رابطه ای

تقدم کلی عملگر های معرفی شده

همانند دروس قبل کد مربوط به این درس را برای دانلود قرار میدهم . موفق باشید و تمرین فراموش نشود .

دانلود فایل آموزش