JavaRush /Blog Java /Random-PL /Operacje na liczbach w Javie

Operacje na liczbach w Javie

Opublikowano w grupie Random-PL
Cześć! Dzisiaj przyjrzymy się bardzo ważnemu tematowi, a mianowicie operacjom na liczbach w Javie . Liczby są wszędzie w programowaniu. Jeśli zagłębisz się w szkolny program nauczania, przypomnisz sobie, że wszystkie informacje na komputerze są prezentowane w formacie liczbowym – kombinacji zer i jedynek – który jest również nazywany kodem binarnym. Operacje na liczbach w Javie - 2Operacji na liczbach w programowaniu jest bardzo wiele, dlatego przyjrzymy się najważniejszym z nich na przykładach :)

Działania arytmetyczne

Zacznijmy od najprostszej rzeczy - od operacji arytmetycznych. Są to dobrze znane dodawanie (znak +), odejmowanie (-), mnożenie (*) i dzielenie (/).
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);
   }
}
Wyjście konsoli:

1032
966
32967
30
To wszystko już wykorzystałeś. Można do nich dodać operację %- pozostałą część dzielenia.
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
Wyjście konsoli:

1
W tym przykładzie dzielimy 33 przez 2. W rezultacie otrzymujemy 16 i pozostaje dodatkowy „ogon”, którego nie można podzielić przez 2 - jeden. Ten „ogon” będzie wynikiem operacji „reszta z dzielenia”. Java (podobnie jak matematyka) implementuje operatory porównania . Pewnie znacie je też ze szkoły:
  • równa się ( ==)
  • więcej ( >)
  • mniej ( <)
  • większe bądź równe ( >=)
  • mniejszy lub równy ( <=)
  • nie równe ( !=)
Tutaj warto zwrócić uwagę na jeden ważny punkt, w którym wielu początkujących popełnia błędy. Operację „równa się” zapisuje się jako ==, a nie jednym znakiem =. Znak jednostki =w Javie to operator przypisania, w którym zmiennej przypisuje się liczbę, ciąg znaków lub wartość innej zmiennej. Operacje na liczbach w Javie - 3
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// oczekuj, że false zostanie wydrukowane na konsoli
   }
}
Wyjście konsoli:

999
Ups! Zdecydowanie nie jest to wynik, jakiego oczekiwaliśmy. To zupełnie inny rodzaj danych: spodziewaliśmy się zobaczyć boolean, ale otrzymaliśmy liczbę. Dzieje się tak, ponieważ w nawiasach mamy operację przypisania, a nie porównanie. Do zmiennej przypisano x=y wartość (999) , a następnie wydrukowaliśmy ją na konsoli. Prawidłowa opcja: yxx
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
Wyjście konsoli:

false
Teraz poprawnie porównaliśmy 2 liczby! :) Kolejną cechą operacji przypisania ( =) jest to, że można ją wykonać „w łańcuchu”:
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);
   }
}
Wyjście konsoli:

256
Pamiętaj: przypisanie odbywa się od prawej do lewej. To wyrażenie ( x = y = z) będzie wykonywane w krokach:
  • y = z, czyli y = 256
  • x = y, czyli x = 256

Operacje jednoargumentowe

Nazywa się je „jednoarowymi” od słowa „uno” - „jeden”. Otrzymali tę nazwę, ponieważ w przeciwieństwie do poprzednich przeprowadza się je na jednym numerze, a nie na kilku. Obejmują one:
  • Jednoargumentowy minus. Odwraca znak liczby.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
    
           // zmień znak po raz pierwszy
           x = -x;
           System.out.println(x);
    
           // zmień znak po raz drugi
           x= -x;
           System.out.println(x);
       }
    }

    Wyjście konsoli:

    
    -999
    999

    Użyliśmy minusa jednoargumentowego dwukrotnie. W rezultacie nasza liczba stała się najpierw ujemna, a potem znowu dodatnia!

  • Zwiększanie ( ++) i zmniejszanie ( --)

    Operacja ++zwiększa liczbę o jeden, a operacja --zmniejsza ją o tę samą jednostkę.

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

    Wyjście konsoli:

    
    1000
    999
Ta forma notacji może być Ci znana, jeśli słyszałeś o języku C++. Za pomocą tak ciekawej nazwy jej twórcy przekazali swoją ideę: „C++ jest rozszerzeniem języka C”. Popularna ulepszona wersja Notatnika nazywa się Notepad++ Ważny punkt. Istnieją dwa typy operacji zwiększania i zmniejszania: przyrostek i przedrostek. x++- zapis postfiksowy ++x- zapis przedrostkowy Jaka jest zasadnicza różnica, jeśli wstawimy plusy i minusy przed liczbą lub po niej? Zobaczmy na przykładzie:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}
Wyjście konsoli:

999
Czy jest coś nie tak! Chcieliśmy zwiększyć xo 1 i przypisać nową wartość zmiennej y. Czyli y powinno być równe 1000. Ale mamy inny wynik - 999. Okazuje się, że xnie zostało zwiększone, a operacja zwiększania nie zadziałała? Jak to działało. Aby to sprawdzić, spróbuj wydrukować x na konsoli na końcu :)
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
       System.out.println(x);
   }
}
Wyjście konsoli:

999
1000
Właściwie dlatego właśnie tak nazywa się operację postfiksową: jest ona wykonywana po wyrażeniu głównym. Czyli w naszym przypadku: int y = x++; najpierw zostanie wykonana y = x(a zmiennej y zostanie przypisana wartość początkowa x), a dopiero potem x++ .. A co jeśli takie zachowanie nas nie usatysfakcjonuje? Musisz użyć notacji przedrostkowej:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
W tym przypadku zadziała najpierw ++x i dopiero potem. y = x; O tej różnicy warto od razu pamiętać, żeby nie popełnić błędów w prawdziwym programie, w którym całe zachowanie może przez to wywrócić się do góry nogami :)

Połączone operacje

Dodatkowo w Javie występują tzw. operacje łączone. Używają kombinacji dwóch operacji:
  • Zadanie
  • Operacja arytmetyczna
Obejmuje to operacje:
  • +=
  • -=
  • *=
  • /=
  • %=
Spójrzmy na przykład:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
Wyjście konsoli:

1032
x += yoznacza x = x + y. Dla zachowania zwięzłości używane są dwa znaki z rzędu. Działa to również z kombinacjami -=, *=i /=.%=

Operacje logiczne

Oprócz operacji na liczbach Java wykonuje także operacje na zmiennych logicznych - truei false. Operacje te wykonywane są za pomocą operatorów logicznych
  • !— Operator „NIE”. Odwraca wartość zmiennej logicznej

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

    Wyjście konsoli:

    
    false

  • &&— operator „AND”. Zwraca wartość truetylko wtedy, gdy oba operandy to true.

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

    Wyjście konsoli:

    
    false
    true

    Wynikiem pierwszej operacji jest false, ponieważ jeden z warunków jest fałszywy, czyli 100 > 200. Operator wymaga, aby wszystkie warunki były prawdziwe (jak na przykład w drugim wierszu) &&, aby zwrócić .true

  • ||— Operator „OR”. Zwraca true, gdy co najmniej jeden z operandów ma wartość true.

    Tutaj nasz poprzedni przykład będzie działał inaczej:

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

    Wyjście konsoli:

    
    true

    Wyrażenie 100 > 200 jest nadal fałszywe, ale operator „lub” jest całkowicie przekonany, że pierwsza część (100 > 10) jest prawdziwa.

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