JavaRush /Java Blog /Random-TK /Java-da san amallary

Java-da san amallary

Toparda çap edildi
Salam! Bu gün gaty möhüm bir mowzuga, ýagny Java-da san amallaryna serederis . Programmalar hemme ýerde sanlar bar. Mekdep okuw meýilnamasyna göz aýlasaňyz, kompýuterdäki ähli maglumatlaryň san görnüşinde - nollaryň we ikilik kody diýlip atlandyrylýan kombinasiýalarda berilýändigini ýadyňyzdan çykararsyňyz. Java-da san amallary - 2Programmirlemekde sanlar boýunça gaty köp amal bar, şonuň üçin olaryň iň möhümine mysallar bilen serederis :)

Arifmetiki amallar

Iň ýönekeý zatdan - arifmetiki amallardan başlalyň. Bular belli goşma (+ belgi), aýyrmak (-), köpeltmek (*) we bölmek (/).
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 çykyşy:

1032
966
32967
30
Bularyň hemmesini eýýäm ulandyňyz. Olara operasiýa goşup bilersiňiz %- bölümiň galan bölegi.
public class Main {

   public static void main(String[] args) {

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

1
Bu mysalda 33-den 2-ä bölýäris. Netijede 16-a ýetýäris we 2-den bölünmeýän goşmaça “guýruk” galýar. Bu “guýruk” “bölünişigiň galan” işiniň netijesi bolar. Java (matematika ýaly) deňeşdirme operatorlaryny amala aşyrýar . Olary mekdepdenem bilýän bolsaňyz gerek:
  • deňdir ( ==)
  • has köp ( >)
  • az ( <)
  • uly ýa-da deňdir ( >=)
  • az ýa-da deňdir ( <=)
  • deň däl ( !=)
Bu ýerde köp öwrenýänleriň ýalňyşlyk goýberýän möhüm bir nokadyna üns bermelidiris. ==“Deňdir” amaly bir belgi bilen däl-de, ýazylýar =. Java-daky birlik belligi =, bir üýtgeýjä san, setir ýa-da başga bir üýtgeýjiniň bahasy berlen ýumuş operatorydyr. Java-da san amallary - 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 çykyşy:

999
Wah! Bu, biziň garaşýan netijämiz däl. Bu düýbünden başga bir maglumat görnüşi: görmegimize garaşýardyk boolean, ýöne san aldyk. Sebäbi gabygyň içinde deňeşdirme däl-de, tabşyryş amaly bar. x=y Bahasy y(999) üýtgeýjä bellendi , soň bolsa konsola xçap etdik . xDogry wariant:
public class Main {

   public static void main(String[] args) {

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

false
Indi 2 san bilen dogry deňeşdirdik! :) Belleme amalynyň ( =) başga bir aýratynlygy, “zynjyrly” ýerine ýetirilip bilner:
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 çykyşy:

256
Rememberatda saklaň: tabşyryk sagdan çepe ýerine ýetirilýär. Bu aňlatma ( x = y = z) ädimlerde ýerine ýetiriler:
  • y = z, ýagny y = 256
  • x = y, ýagny x = 256

Bitewi amallar

Olara "uno" - "bir" sözünden "unary" diýilýär. Bu aty aldylar, sebäbi öňkülerinden tapawutlylykda, bir belgide däl-de, bir belgide amala aşyrylýar. Bular öz içine alýar:
  • Unary minus. San belgisini tersleşdirýär.

    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 çykyşy:

    
    -999
    999

    Unary minusy iki gezek ulandyk. Netijede, ilki bilen sanymyz negatiw boldy, soň bolsa ýene pozitiw boldy!

  • Ösüş ( ++) we azalmak ( --)

    Amal, ++sanlary bir-birden köpeldýär we amal --şol bir birlik tarapyndan azalýar.

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

    Konsol çykyşy:

    
    1000
    999
Bu bellik görnüşi, C ++ dilini eşiden bolsaňyz, size tanyş bolup biler. Şeýle gyzykly adyň kömegi bilen döredijiler öz pikirlerini aýtdylar: "C ++ C diliniň giňelmesi." Notepadyň meşhur kämilleşdirilen wersiýasyna Notepad ++ diýilýär Möhüm nokat. Artdyrmak we peseltmek amallarynyň iki görnüşi bar: postfiks we prefiks. x++- postfiks belligi ++x- prefiks belligi Sanlardan öň ýa-da soň plýuslary we minuslary goýsaňyz, esasy tapawut näme? Bir mysalda göreliň:
public class Main {

   public static void main(String[] args) {

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

999
Nädogry bir zat barmy? x1-e köpeltmek we üýtgeýjä täze baha bellemek isledik y. 1000agny, y 1000-e deň bolmaly. Weöne başga bir netijämiz bar - 999. Görnüşi ýaly x, köpelmedi we artdyrmak işi işlemedi? Bu nähili işledi. Muny tassyklamak üçin ahyrynda konsola x çap edip görüň :)
public class Main {

   public static void main(String[] args) {

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

999
1000
Aslynda, postfiks operasiýasyna şeýle diýilýär: esasy sözlemden soň ýerine ýetirilýär. .Agny, biziň ýagdaýymyzda: int y = x++; ilki ýerine ýetirilýär y = x(we üýtgeýjä başlangyç baha berler x), diňe şondan soň x++ . Bu hereketden kanagatlanmasak näme etmeli? Prefiks belligini ulanmaly:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
++x Bu ýagdaýda ilki bilen we diňe şondan soň işlär . y = x; Bu tapawut, şol sebäpli ähli hereketleriň tersine bolup biljek hakyky programmada ýalňyşlyk goýbermezlik üçin derrew ýatda saklamalydyrys :)

Kombinirlenen amallar

Mundan başga-da, Java-da birleşdirilen amallar diýilýär. Iki amalyň utgaşmasyny ulanýarlar:
  • Bellenme
  • Arifmetiki amal
Bu amallary öz içine alýar:
  • +=
  • -=
  • *=
  • /=
  • %=
Bir mysala seredeliň:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
Konsol çykyşy:

1032
x += ydiýmekdir x = x + y. Diňe gysga bolmagy üçin yzly-yzyna iki simwol ulanylýar. -=Bu , we *=, kombinasiýalary bilen hem işleýär . /=%=

Logiki amallar

Sanlar boýunça amallardan başga-da, Java-da Boolean üýtgeýjileri - truewe false. Bu amallar logiki operatorlaryň kömegi bilen amala aşyrylýar
  • !- "NOTOK" operator Boolean üýtgeýjiniň bahasyny üýtgedýär

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

    Konsol çykyşy:

    
    false

  • &&- “AND” operatory. trueDiňe iki operand bolsa bir bahany görkezýär 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 çykyşy:

    
    false
    true

    Ilkinji amalyň netijesi false, şertleriň biri ýalňyş bolany üçin, ýagny 100> 200. Operator &&gaýdyp gelmek üçin trueähli şertleriň dogry bolmagyny talap edýär (mysal üçin ikinji setirdäki ýaly) .

  • ||- “OR” operatory. trueOperasiýalaryň iň bolmanda biri dogry bolanda gaýdyp gelýär .

    Ine, öňki mysalymyz başgaça işlär:

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

    Konsol çykyşy:

    
    true

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

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