JavaRush /Блоги Java /Random-TG /Амалиётҳои рақамӣ дар Java

Амалиётҳои рақамӣ дар Java

Дар гурӯҳ нашр шудааст
Салом! Имрӯз мо як мавзӯи хеле муҳимро дида мебароем, яъне амалиёти рақамӣ дар Java . Рақамҳо дар ҳама ҷо дар барномасозӣ ҳастанд. Агар шумо барномаи таълимии мактабро кобед, дар хотир доред, ки ҳама маълумот дар компютер дар формати ададӣ - омезиши сифрҳо ва якҳо пешниҳод карда мешавад, ки онро codeи дуӣ низ меноманд. Амалиёти рақамӣ дар Java - 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 - як тақсим намешавад. Ин «дум» натичаи амалиёти «бокимондаи таксимот» хохад шуд. Java (инчунин математика) операторҳои муқоисаро амалӣ мекунад . Шумо эҳтимол онҳоро аз мактаб низ медонед:
  • баробар ( ==)
  • Бештар ( >)
  • Камтар ( <)
  • бузургтар аз ё баробар ба ( >=)
  • камтар ё баробар ба ( <=)
  • баробар нест ( !=)
Дар ин ҷо ба як нуқтаи муҳим таваҷҷӯҳ кардан лозим аст, ки дар он бисёр шурӯъкунандагон хато мекунанд. Амали "баробар" ҳамчун як аломат навишта мешавад ==, на бо як аломат =. Аломати воҳид =дар Java оператори таъинот аст, ки дар он ба тағирёбанда рақам, сатр ё арзиши тағирёбандаи дигар таъин карда мешавад. Амалиёти рақамӣ дар Java - 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

Амалиёти якхела

Онҳо аз калимаи "uno" - "як" номида мешаванд. Онҳо ин номро гирифтаанд, зеро бар хилофи рақамҳои қаблӣ, онҳо дар як рақам гузаронида мешаванд, на дар якчанд. Инҳо дар бар мегиранд:
  • Минуси ягона. Он аломати рақамро баръакс мекунад.

    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

    Мо ду маротиба минуси унариро истифода кардем. Дар натиҷа шумораи мо дар аввал манфӣ ва баъдан боз мусбат шуд!

  • Афзоиш ( ++) ва кам кардан ( --)

    Амал ++як ададро як маротиба зиёд мекунад ва амалиёт --онро ба ҳамон воҳид кам мекунад.

    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++ тамдиди забони Си аст." Версияи маъмули такмилёфтаи Notepad Notepad++ номида мешавад Нуқтаи муҳим. Ду намуди амалиёти афзоиш ва камкунӣ вуҷуд дорад: постфикс ва префикс. x++- аломати постфикс ++x- аломати префикс, агар шумо плюс ва камбудҳоро пеш ё пас аз адад гузоред, фарқияти асосӣ чист? Биёед дар як мисол бубинем:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}
Натиҷаи консол:

999
Оё ягон чизи нодуруст вуҷуд дорад! Мо мехостем, ки xба 1 афзоиш диҳем ва ба тағирёбанда арзиши нав таъин кунем 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
Дарвоқеъ, барои ҳамин амалиёти постфиксро чунин меноманд: он пас аз ифодаи асосӣ иҷро мешавад. Яъне дар ҳолати мо: 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; фарқиятро фавран ба ёд овардан лозим аст, то дар як барномаи воқеӣ хато накунад, ки дар он ҳама рафтор метавонад аз ин сабаб чаппа шавад :)

Амалиёти якҷоя

Илова бар ин, дар Java амалҳои ба истилоҳ омехта мавҷуданд. Онҳо маҷмӯи ду амалиётро истифода мебаранд:
  • Супориш
  • Амалиёти арифметикӣ
Ин амалиётҳоро дар бар мегирад:
  • +=
  • -=
  • *=
  • /=
  • %=
Биёед як мисолро дида бароем:
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. Танҳо барои кӯтоҳ будан, ду аломат дар як саф истифода мешаванд. Ин инчунин бо омезиши -=, *=, /=ва %=.

Амалиёти мантиқӣ

Илова ба амалиётҳо оид ба рақамҳо, Java инчунин дар тағирёбандаҳои булӣ амал мекунад - trueва false. Ин амалҳо бо истифода аз операторҳои мантиқӣ анҷом дода мешаванд
  • !— Оператори «НЕ». Қимати як тағирёбандаи логикиро баргардонад

    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 требуется, чтобы истинными были все условия (How во второй строке, например).

  • || — оператор “ИЛИ”. returns 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