Operatori

Aşa cum ai văzut şi în capitolele anterioare, în Java există o serie de operatori. În funcţie de scopul lor, aceştia pot fi împărţiţi în mai multe categorii.

Operatorul de atribuire ( = )

Acesta este =. Este folosit pentru a salva diverse valori în variabile

Operatori Artimetici

Aceştia sunt folosiţi pentru a realiza diverse operaţii matematice. Se folosesc semnele din matematică:

  • + adunare
  • - scădere
  • * înmulţire
  • / împărţire
  • % restul împărţirii

Operatori compuşi

Prin combinarea operatorului de atribuire cu un operator aritmetic, obţinem un operator aritmetic compus. Aceştia sunt:

  • +=
  • -=
  • *=
  • /=
  • %=

Aceştia se comportă că şi cum am mai adăuga/scădea/etc. la o variabilă o anumită valoare. Programul anterior este rescris mai jos folosind aceşti operatori.

Astfel, cele două secvenţe de cod de mai jos sunt echivalente:

let x = 5;
x = x + 2; //afișează 7

let x = 5;
x += 2; //afișează 7

Operatori aritmetici unari

Folosiţi în operaţiile cu un singur membru, cum ar fi adăugarea semnului pentru un număr. De exemplu, numărul natural -7 poate fi afişat în modul următor:

- poate fi folosit pentru a nega un număr, pe când + practic nu are niciun efect.

Alţi operatori unari sunt ++ şi –– folosiţi pentru a creşte sau a scădea valoarea unei variabile cu o unitate.

Instrucţiunea x++; este echivalentă cu x += 1; şi cu x = x + 1. Instrucţiunea x–; este echivalentă cu x -= 1; şi cu x = x - 1.

let x = 5;
x++;  // x va avea valoarea 6

let x = 5;
x = x + 1;  // x va avea valoarea 6

let x = 5;
x += 1;  // x va avea valoarea 6

Operatori de egalitate şi operatori relaţionali

Aceştia verifică relaţia dintre 2 valori (dacă una din ele este mai mică, mai mare sau egală cu cealaltă). Atenţie: nu confundaţi operatorul = care este operator de atribuire cu operatorul == care este operator de comparaţie.

  • == verifică dacă 2 elemente sunt egale
  • === verifică dacă elementele comparației sunt de același tip și au aceeași valoare
  • != opusul lui ==, verifică dacă 2 elemente sunt diferite
  • !== verifică dacă elementele comparației sunt de tipuri diferite și au valori diferite
  • < primul număr este strict mai mic ca al doilea
  • > primul număr este strict mai mare ca al doilea
  • <= primul număr este mai mic sau egal cu al doilea
  • >= primul număr este mai mare sau egal cu al doilea

let x = 5;
x === "5"   
//false (pentru ca x este un integer iar "5" este un string)

let x = 5;
x === 5   
//true (pentru ca x este un integer iar "5" este un string)

let x = 5;
x !== "5"  //true 

let x = 5;
x !== 5   //false

Operatori logici

Aceştia ne ajută să verificăm mai multe condiţii o dată. Practic, ei sunt folosiţi pentru a combina mai multe variabile sau rezultate booleene pentru a verifica dacă este necesară doar o condiţie sau mai multe. Aceştia sunt:

  • && AND
  • || OR
  • ! NOT

Ei se aplică doar pe valori booleene şi au ca rezultat tot o valoare booleană.

x y x && y x || y !x
true true true true false
true false false true false
false true false true true
false false false false true

Aşadar, operatorul && aplicat între 2 variabile, va avea ca rezultat valoarea true, doar dacă cele 2 variabile sunt true şi true. Operatorul || va avea că rezultat true dacă cel puţin unul din operani este true. Operatorul ! va avea că rezultat opusul valorii variabilei.

Cel mai bine aceste exemple să înțeleg în practică sau citindu-le cu voce tare. De exemplu gândim: “suntem mulțumiți dacă și prima condiție e adevărată și a doua condiție e adevărată”. Se observă acel “și și” = && .

Suntem mulțumiți dacă condiția 1 e adevărată sau condiția 2 e adevărată; se formează operatorul logic sau sau = ||.

Exerciții:

1. Scrieţi un program care să ceară 2 numere de la tastatură şi să afişeze rezultatele adunării, scăderii, împarţirii, înmulţirii şi modulo.

For the numbers 30 and 10.
The result of adding is 40.
The result of subtracting is 20.
The result of multiplying is 300.
The result of dividing is 3.
The result of module is 0.

Soluţie

Soluţie


2. Să se verifice dacă un om este bogat sau sărac. Se vor folosi 3 variabile:

  • salariuLunar
  • areMostenire care este true dacă omul respectiv a moștenit ceva
  • membriFamilie - toţi membrii familiei lui, inclusiv el

Un om bogat are moştenire şi un salariu lunar mai mare de 10 000 RON, sau este un om care are un venit de 2 000 pe membru de familie (venitul este dat doar de salariul lui). Folosiţi o variabilă booleană care să vă indice dacă omul este sau nu bogat.

Soluţie

Soluţie


3. Să se determine valorile de adevăr pentru următoarele expresii:

(7 < 5)
(4 < 12)
(3 <= 4) || (5 == 7)
(8 > 4) && (2 <= 3)

Soluţie

Soluţie


4. S-au comandat 100 de litri de suc de portocale în sticle de câte 1,2 litri. Câte sticle s-au adus?

Soluţie

Soluţie


5. Sunt 20 pasageri într-o maşină. Există 50 de maşini care circulă dimineaţa din Pipera în Berceni. Dacă sunt în total 640 de oameni care vor să ajungă în fiecare dimineaţă din Pipera în Berceni, care este media locurilor libere care rămân în fiecare maşînă?

Soluţie

Soluţie


You could leave a comment if you were logged in.