CodeGym /Blog Java /Random-PL /Operatory numeryczne w Javie
Autor
Jesse Haniel
Lead Software Architect at Tribunal de Justiça da Paraíba

Operatory numeryczne w Javie

Opublikowano w grupie Random-PL
Cześć! Dzisiaj zajmiemy się bardzo ważnym tematem, a mianowicie operatorami numerycznymi w Javie .
Operatory numeryczne w Javie - 1
W programowaniu liczby są wszędzie. Jeśli kopiesz głęboko i pamiętasz szkołę średnią, możesz przypomnieć sobie, że komputer przedstawia wszystkie informacje w formacie numerycznym: kombinacje zer i jedynek, znane również jako kod binarny.
Operatory numeryczne w Javie - 2
Istnieje wiele operatorów numerycznych w programowaniu, więc posłużmy się przykładami, aby poznać najważniejsze z nich :) Zacznijmy od najprostszego: operatorów arytmetycznych . Są to dobrze znane operatory dodawania ( +), odejmowania ( -), mnożenia ( *) i dzielenia ( )./

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 Już to wszystko wykorzystałeś. Do tej grupy możesz dodać %operator reszty lub modulo ( ).

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. Daje to 16 z dodatkowym „ogonem” (jeden), który nie jest podzielny przez 2. Ten „ogon” jest wynikiem operacji „reszta z dzielenia”. Java implementuje również operatory porównania/relacji (podobnie jak w matematyce). Prawdopodobnie znasz je również ze szkoły:
  • równy ( ==)
  • większy niż ( >)
  • mniej niż ( <)
  • większy lub równy ( >=)
  • mniejszy lub równy ( <=)
  • nie równe ( !=)
Tutaj powinieneś zwrócić uwagę na jeden ważny punkt, który powoduje, że wielu początkujących popełnia błędy. Operator „równa się” jest zapisywany jako ==, a nie =. W Javie single =to operator przypisania , który jest używany, gdy zmiennej przypisywana jest liczba, ciąg znaków lub wartość innej zmiennej.
Operatory numeryczne w Javie - 3

public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// We expect false to be displayed
   }
}
Wyjście konsoli: 999 Ups! To oczywiście nie jest wynik, jakiego oczekiwaliśmy. To zupełnie inny typ danych: spodziewaliśmy się wartości logicznej , ale otrzymaliśmy liczbę. Wszystko dlatego, że zamiast porównania użyliśmy operatora przypisania w nawiasach . Wartość (999) została przypisana zmiennej , a następnie wyświetliliśmy wartość . Oto właściwy sposób, aby to zrobić: x=yyxx

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 te dwie liczby! :) Oto kolejna cecha operatora przypisania ( =): można go połączyć razem:

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, że przypisanie jest od prawej do lewej . To wyrażenie ( x = y = z) zostanie wykonane w krokach:
  • y = z, to jest,y = 256
  • x = y, to jest,x = 256

Operatory jednoargumentowe.

Nazywa się je „ jednoarnymi ” od słowa „ uno ”, co oznacza „ jeden ”. Otrzymali tę nazwę, ponieważ w przeciwieństwie do poprzednich operatorów działają 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;

       // Change the sign for the first time
       x = -x;
       System.out.println(x);

       // Change the sign for the second time
       x= -x;
       System.out.println(x);
   }
}
Dane wyjściowe konsoli: -999 999 Dwukrotnie użyliśmy jednoargumentowego operatora minus. W rezultacie nasza liczba była najpierw ujemna, a potem znów stała się dodatnia!
  • Zwiększenie (++) i zmniejszenie (--)
Operator ++zwiększa liczbę o jeden, a --operator zmniejsza liczbę o tę samą wartość.

public class Main {

   public static void main(String[] args) {

       int x = 999;
       x++;
       System.out.println(x);

       x--;
       System.out.println(x);
   }
}
Wynik konsoli: 1000 999 Ta notacja może być Ci znana, jeśli słyszałeś o języku C++. Jego twórcy użyli tej interesującej nazwy, aby przekazać ideę, że „C++ jest rozszerzeniem języka C”. Popularna ulepszona wersja Notatnika nosi nazwę Notepad++. Oto ważna uwaga. Istnieją dwa rodzaje operatorów inkrementacji i dekrementacji: postfix i prefix . x++- postfiks ++x- prefiks Jaka jest podstawowa różnica między umieszczaniem plusów/minusów przed lub po liczbie? Zobaczymy w poniższym 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 Coś jest nie tak! Chcieliśmy zwiększyć xo 1 i przypisać nową wartość zmiennej y. Innymi słowy, y powinno wynosić 1000. Ale zamiast tego otrzymujemy coś innego: 999. Wygląda na to, że x nie zostało zwiększone i że operator inkrementacji nie zadziałał? Ale zadziałało. Aby się przekonać, spróbuj wyświetlić xna 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śnie dlatego ta operacja nosi nazwę postfix: jest wykonywana po wyrażeniu głównym. W naszym przypadku oznacza to, że: int y = x++; y = xjest wykonywane jako pierwsze (i zmienna yzostanie zainicjowana na wartość x), a dopiero potem zostanie x++wykonane. Co jeśli nie jest to zachowanie, którego chcemy? Następnie musimy 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 ++xjest przetwarzany jako pierwszy, a dopiero potem jest y = x; wykonany. Powinieneś od razu zapisać tę różnicę w pamięci, aby uniknąć błędów w prawdziwym programie, w którym użycie postfiksu zamiast prefiksu mogłoby wywrócić wszystko do góry nogami :)

Operatory złożone

Ponadto w Javie istnieją tak zwane operatory złożone. Łączą w sobie dwóch operatorów:
  • Zadanie
  • Operatory arytmetyczne
Obejmują one:
  • +=
  • -=
  • *=
  • /=
  • %=
Rozważmy 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 += y oznacza x = x + y. Oba symbole są używane kolejno ze względu na zwięzłość. Kombinacje -=, *=, /=i %=działają w podobny sposób.

Operatory logiczne

Oprócz operatorów numerycznych, Java ma również operacje, które obejmują wartości logiczne ( true i false ). Operacje te są wykonywane przy użyciu operatorów logicznych
  • !- logiczne NIE . Odwraca wartość logiczną

public class Main {

   public static void main(String[] args) {

       boolean x = true;
       System.out.println(!x);
   }
}
Wyjście konsoli: fałsz
  • &&- logiczne I . Zwraca true tylko wtedy, gdy oba operandy są prawdziwe.

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 fałsz, ponieważ jeden z operandów jest fałszywy, a mianowicie 100 > 200. Aby zwrócić prawdę, &&operator wymaga, aby oba operandy były prawdziwe (tak jak w drugim wierszu).
  • ||- logiczne LUB . Zwraca true, gdy przynajmniej jeden z operandów jest prawdziwy.
Kiedy używamy tego operatora, nasz poprzedni przykład daje inny wynik:

public class Main {

   public static void main(String[] args) {

       System.out.println(100 > 10 || 100 > 200);
   }
}
Wyjście konsoli: true Wyrażenie 100 > 200nadal jest fałszywe, ale dla operatora OR jest całkowicie wystarczające, aby pierwsza część ( 100 > 10) była prawdziwa.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION