JavaRush /وبلاگ جاوا /Random-FA /عملیات اعداد در جاوا

عملیات اعداد در جاوا

در گروه منتشر شد
سلام! امروز به موضوع بسیار مهمی خواهیم پرداخت، یعنی عملیات اعداد در جاوا . اعداد همه جا در برنامه نویسی هستند. اگر برنامه درسی مدرسه را بررسی کنید، به یاد خواهید آورد که تمام اطلاعات روی یک کامپیوتر در قالب عددی - ترکیبی از صفر و یک - ارائه می شود که به آن کد باینری نیز می گویند. عملیات اعداد در جاوا - 2تعداد زیادی عملیات روی اعداد در برنامه نویسی وجود دارد، بنابراین ما با مثال هایی به مهمترین آنها خواهیم پرداخت :)

عملیات حسابی

بیایید با ساده ترین چیز شروع کنیم - با عملیات حسابی. اینها جمع معروف (علامت +)، تفریق (-)، ضرب (*) و تقسیم (/) هستند.
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       System.out.println(x+y);
       System.out.println(x-y);
       System.out.println(x*y);
       System.out.println(x/y);
   }
}
خروجی کنسول:

1032
966
32967
30
شما قبلاً از همه اینها استفاده کرده اید. شما می توانید یک عملیات را به آنها اضافه کنید %- باقی مانده تقسیم.
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
خروجی کنسول:

1
در این مثال، ما 33 را بر 2 تقسیم می کنیم. در نتیجه، 16 به دست می آید و یک "دم" اضافی باقی می ماند که بر 2 - یک تقسیم نمی شود. این "دم" نتیجه عملیات "باقی مانده تقسیم" خواهد بود. جاوا (و همچنین ریاضیات) عملگرهای مقایسه را پیاده سازی می کند . شما احتمالاً آنها را از مدرسه می شناسید:
  • برابر با ( ==)
  • بیشتر ( >)
  • کمتر ( <)
  • بزرگتر یا مساوی با ( >=)
  • کمتر یا مساوی ( <=)
  • نا برابر ( !=)
در اینجا ارزش توجه به یک نکته مهم را دارد که در آن بسیاری از مبتدیان اشتباه می کنند. عمل "برابر" به صورت نوشته می شود ==و نه با یک علامت =. علامت واحد =در جاوا یک عملگر انتساب است که در آن به متغیر یک عدد، رشته یا مقدار متغیر دیگری اختصاص داده می شود. عملیات اعداد در جاوا - 3
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// expect false to be printed to the console
   }
}
خروجی کنسول:

999
اوه! این به وضوح نتیجه ای نیست که ما انتظار داشتیم. این یک نوع کاملاً متفاوت از داده است: ما انتظار داشتیم که ببینیم boolean، اما یک عدد دریافت کردیم. این به این دلیل است که در پرانتز ما یک عملیات انتساب داریم، نه مقایسه. x=y مقدار y(999) به متغیر اختصاص داده شد xو سپس آن را xدر کنسول چاپ کردیم. گزینه صحیح:
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
خروجی کنسول:

false
حالا ما 2 عدد را به درستی مقایسه کرده ایم! :) یکی دیگر از ویژگی های عملیات انتساب ( =) این است که می توان آن را "زنجیره ای" انجام داد:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;
       int z = 256;

       x = y = z;
       System.out.println(x);
   }
}
خروجی کنسول:

256
به یاد داشته باشید: تکلیف از راست به چپ انجام می شود. این عبارت ( x = y = z) در مراحل زیر اجرا می شود:
  • y = z، یعنی y = 256
  • x = y، یعنی x = 256

عملیات Unary

آنها از کلمه "uno" - "یک" "unary" نامیده می شوند. آنها این نام را دریافت کردند زیرا بر خلاف موارد قبلی ، آنها بر روی یک عدد انجام می شوند و نه روی چندین. این شامل:
  • منهای یکنواختی علامت عدد را معکوس می کند.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
    
           // change the sign for the first time
           x = -x;
           System.out.println(x);
    
           // change the sign a second time
           x= -x;
           System.out.println(x);
       }
    }

    خروجی کنسول:

    
    -999
    999

    ما دوبار از unary minus استفاده کردیم. در نتیجه عدد ما اول منفی شد و دوباره مثبت شد!

  • افزایش ( ++) و کاهش ( --)

    یک عملیات ++یک عدد را یک عدد افزایش می دهد و یک عملیات --آن را به همان واحد کاهش می دهد.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
           x++;
           System.out.println(x);
    
           x--;
           System.out.println(x);
       }
    }

    خروجی کنسول:

    
    1000
    999
اگر نام زبان C++ را شنیده باشید، ممکن است این شکل نماد برای شما آشنا باشد. با کمک چنین نام جالبی، سازندگان آن ایده خود را منتقل کردند: "C++ توسعه زبان C است." نسخه بهبود یافته محبوب Notepad Notepad ++ نام دارد نکته مهم. دو نوع عملیات افزایش و کاهش وجود دارد: پسوند و پیشوند. x++- علامت گذاری پسوند ++x- نماد پیشوندی تفاوت اساسی با قرار دادن مثبت و منفی قبل یا بعد از عدد چیست؟ بیایید در یک مثال ببینیم:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}
خروجی کنسول:

999
مشکلی وجود دارد! ما می خواستیم x1 را افزایش دهیم و یک مقدار جدید به متغیر اختصاص دهیم y. یعنی y باید برابر با 1000 باشد. اما ما یک نتیجه متفاوت داریم - 999. معلوم می شود که xافزایش نیافته است و عملیات افزایشی کار نمی کند؟ چگونه کار کرد. برای تأیید این موضوع، در پایان x را در کنسول چاپ کنید :)
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
       System.out.println(x);
   }
}
خروجی کنسول:

999
1000
در واقع، به همین دلیل است که عملیات postfix به این صورت نامیده می شود: بعد از عبارت اصلی انجام می شود. یعنی در مورد ما: int y = x++; ابتدا اجرا می شود y = x(و به متغیر y مقدار اولیه اختصاص داده می شود x) و فقط پس از آن x++ اگر از این رفتار راضی نباشیم چه می شود؟ شما باید از نماد پیشوند استفاده کنید:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
++x در این مورد، ابتدا و تنها بعد از آن کار خواهد کرد . y = x; این تفاوت را باید فوراً به خاطر بسپارید تا در یک برنامه واقعی اشتباه نکنید که در آن همه رفتارها می توانند به این دلیل وارونه شوند :)

عملیات ترکیبی

علاوه بر این، در جاوا عملیات به اصطلاح ترکیبی وجود دارد. آنها از ترکیب دو عملیات استفاده می کنند:
  • وظیفه
  • عملیات حسابی
این شامل عملیات:
  • +=
  • -=
  • *=
  • /=
  • %=
بیایید به یک مثال نگاه کنیم:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
خروجی کنسول:

1032
x += yبه معنای x = x + y. فقط برای اختصار، از دو کاراکتر پشت سر هم استفاده می شود. این همچنین با ترکیبی از -=, *=و /=.%=

عملیات منطقی

جاوا علاوه بر عملیات روی اعداد، عملیات روی متغیرهای Boolean trueو false. این عملیات با استفاده از عملگرهای منطقی انجام می شود
  • !- اپراتور "NOT". مقدار یک متغیر بولی را معکوس می کند

    public class Main {
    
       public static void main(String[] args) {
    
           boolean x = true;
           System.out.println(!x);
       }
    }

    خروجی کنسول:

    
    false

  • &&- عملگر "AND". فقط در صورتی یک مقدار را برمی‌گرداند trueکه هر دو عملوند باشند true.

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 && 100 > 200);
           System.out.println(100 > 50 && 100 >= 100);
       }
    }

    خروجی کنسول:

    
    false
    true

    نتیجه عملیات اول است false، زیرا یکی از شرایط نادرست است، یعنی 100 > 200. عملگر &&برای برگرداندن، trueنیاز به درست بودن همه شرایط دارد (مثلاً در خط دوم) .

  • ||- اپراتور "OR". زمانی برمی گردد trueکه حداقل یکی از عملوندها درست باشد.

    در اینجا مثال قبلی ما متفاوت عمل خواهد کرد:

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 || 100 > 200);
       }
    }

    خروجی کنسول:

    
    true

    Выражение 100 > 200 по-прежнему ложно, но оператору “or” вполне достаточно, что первая часть (100 > 10) является истинной.

نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION