JavaRush /Java blogi /Random-UZ /Java-da raqam operatsiyalari

Java-da raqam operatsiyalari

Guruhda nashr etilgan
Salom! Bugun biz juda muhim mavzuni ko'rib chiqamiz, ya'ni Java-da raqam operatsiyalari . Raqamlar dasturlashda hamma joyda mavjud. Agar siz maktab o'quv dasturini o'rgansangiz, kompyuterdagi barcha ma'lumotlar raqamli formatda - nollar va birliklar kombinatsiyasida - ikkilik kod deb ham ataladiganligini eslaysiz. Java-da raqam operatsiyalari - 2Dasturlashda raqamlar ustida juda ko'p operatsiyalar mavjud, shuning uchun biz ulardan eng muhimlarini misollar bilan ko'rib chiqamiz :)

Arifmetik amallar

Keling, eng oddiy narsadan boshlaylik - arifmetik amallar bilan. Bular taniqli qo'shish (+ belgisi), ayirish (-), ko'paytirish (*) va bo'lish (/).
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);
   }
}
Konsol chiqishi:

1032
966
32967
30
Bularning barchasini allaqachon ishlatgansiz. Siz ularga operatsiya qo'shishingiz mumkin %- bo'linishning qolgan qismi.
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
Konsol chiqishi:

1
Ushbu misolda biz 33 ni 2 ga bo'lamiz. Natijada, biz 16 ni olamiz va 2 ga bo'linmaydigan qo'shimcha "dum" qoladi - bir. Ushbu "quyruq" "bo'linishning qolgan qismi" operatsiyasining natijasi bo'ladi. Java (shuningdek, matematika) taqqoslash operatorlarini amalga oshiradi . Siz ularni maktabdan ham bilishingiz mumkin:
  • teng ( ==)
  • Ko'proq ( >)
  • Ozroq ( <)
  • dan katta yoki teng ( >=)
  • dan kichik yoki teng ( <=)
  • teng emas ( !=)
Bu erda ko'plab yangi boshlanuvchilar xato qiladigan muhim nuqtaga e'tibor qaratish lozim. ==“Tenglik” amali bir belgi bilan emas, balki sifatida yoziladi =. Java-da birlik belgisi =tayinlash operatori bo'lib, bu erda o'zgaruvchiga raqam, qator yoki boshqa o'zgaruvchining qiymati beriladi. Java-da raqam operatsiyalari - 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
   }
}
Konsol chiqishi:

999
Voy! Bu biz kutgan natija emasligi aniq. Bu mutlaqo boshqa turdagi maʼlumotlar: biz koʻrishni kutgandik boolean, lekin raqam oldik. Buning sababi shundaki, qavs ichida bizda taqqoslash emas, balki tayinlash operatsiyasi mavjud. x=y Qiymat y(999) o'zgaruvchiga tayinlandi xva keyin biz uni xkonsolga chop etdik. To'g'ri variant:
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
Konsol chiqishi:

false
Endi biz 2 ta raqamni to'g'ri taqqosladik! :) Tayinlash operatsiyasining ( =) yana bir xususiyati shundaki, uni “zanjirli” bajarish mumkin:
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);
   }
}
Konsol chiqishi:

256
Esingizda bo'lsin: topshiriq o'ngdan chapga amalga oshiriladi. Bu ifoda ( x = y = z) bosqichlarda bajariladi:
  • y = z, ya'ni y = 256
  • x = y, ya'ni x = 256

Birlamchi operatsiyalar

Ular "uno" - "bir" so'zidan "unary" deb ataladi. Ular bu nomni oldilar, chunki avvalgilaridan farqli o'laroq, ular bir nechta emas, balki bitta raqamda amalga oshiriladi. Bularga quyidagilar kiradi:
  • Birlik minus. Bu raqamning belgisini teskari qiladi.

    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);
       }
    }

    Konsol chiqishi:

    
    -999
    999

    Biz unary minusdan ikki marta foydalandik. Natijada bizning raqamimiz avvaliga manfiy bo'ldi, keyin yana ijobiy bo'ldi!

  • Oshirish ( ++) va kamaytirish ( --)

    Amaliyot ++raqamni bittaga oshiradi va operatsiya --uni bir xil birlikka kamaytiradi.

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

    Konsol chiqishi:

    
    1000
    999
Agar siz C++ tili haqida eshitgan bo'lsangiz, bu yozuv shakli sizga tanish bo'lishi mumkin. Bunday qiziqarli nom yordamida uning yaratuvchilari o'zlarining g'oyalarini etkazdilar: "C++ - bu C tilining kengaytmasi." Bloknotning mashhur takomillashtirilgan versiyasi Notepad++ deb nomlanadi Muhim nuqta. O'stirish va kamaytirish amallarining ikki turi mavjud: postfiks va prefiks. x++- postfiks belgisi ++x- prefiks belgisi Agar raqamdan oldin yoki keyin plyus va minuslarni qo'ysangiz, asosiy farq nima? Keling, misolda ko'rib chiqaylik:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}
Konsol chiqishi:

999
Nimadir xato bormi! Biz 1 ga oshirishni xva o'zgaruvchiga yangi qiymat tayinlashni xohladik y. Ya'ni, y 1000 ga teng bo'lishi kerak. Lekin bizda boshqacha natija bor - 999. Ko'rinib turibdiki, u xoshirilmagan va oshirish operatsiyasi ishlamaganmi? Bu qanday ishlagan. Buni tekshirish uchun oxirida konsolga x ni chop qilib ko'ring :)
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
       System.out.println(x);
   }
}
Konsol chiqishi:

999
1000
Darhaqiqat, postfiks operatsiyasi shuning uchun ham shunday deb ataladi: u asosiy ifodadan keyin bajariladi. Ya'ni, bizning holatimizda: int y = x++; birinchi navbatda u bajariladi y = x(va y o'zgaruvchisi o'zining asl qiymatiga ega bo'ladi x), va faqat keyin x++ .Agar bu xatti-harakatlardan qoniqmasa nima bo'ladi? Prefiks belgisini ishlatishingiz kerak:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
Bunday holda, u birinchi navbatda ishlaydi ++x va shundan keyingina y = x; ishlaydi.Haqiqiy dasturda xatolikka yo'l qo'ymaslik uchun bu farqni darhol eslab qolish kerak, buning natijasida barcha xatti-harakatlar teskari bo'lishi mumkin :)

Kombinatsiyalangan operatsiyalar

Bundan tashqari, Java-da birlashtirilgan operatsiyalar deb ataladiganlar mavjud. Ular ikkita operatsiyaning kombinatsiyasidan foydalanadilar:
  • Topshiriq
  • Arifmetik amal
Bunga operatsiyalar kiradi:
  • +=
  • -=
  • *=
  • /=
  • %=
Keling, bir misolni ko'rib chiqaylik:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
Konsol chiqishi:

1032
x += yanglatadi x = x + y. Qisqalik uchun ketma-ket ikkita belgi ishlatiladi. -=Bu , *=, /=va kombinatsiyalari bilan ham ishlaydi %=.

Mantiqiy operatsiyalar

Raqamlar bilan operatsiyalardan tashqari, Java ham mantiqiy o'zgaruvchilar bilan operatsiyalarga ega - trueva false. Bu amallar mantiqiy operatorlar yordamida bajariladi
  • !- "YO'Q" operatori. Mantiqiy o'zgaruvchining qiymatini o'zgartiradi

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

    Konsol chiqishi:

    
    false

  • &&— “AND” operatori. trueAgar ikkala operand ham bo'lsa, qiymatni qaytaradi true.

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

    Konsol chiqishi:

    
    false
    true

    Birinchi amalning natijasi false, chunki shartlardan biri noto'g'ri, ya'ni 100 > 200. &&Qaytish uchun operator truebarcha shartlarning to'g'ri bo'lishini talab qiladi (masalan, ikkinchi qatordagi kabi) .

  • ||— “OR” operatori. trueOperandlardan kamida bittasi rost bo'lganda qaytaradi .

    Bu erda oldingi misolimiz boshqacha ishlaydi:

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

    Konsol chiqishi:

    
    true

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

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION