Operatorii aritmetici sunt folosiți pentru a efectua operații matematice de bază între variabile și valori.
Operator
Nume
Exemplu
Rezultat
+
Adunare
5 + 3
8
-
Scădere
10 - 4
6
*
Înmulțire
6 * 7
42
/
Împărțire
20 / 4
5
%
Modulo (rest)
10 % 3
1
++
Incrementare
x++ sau ++x
x + 1
--
Decrementare
x-- sau --x
x - 1
Exemplu Practic:
Calculator.java
public class Calculator {
public static void main(String[] args) {
// Declararea variabilelorint a = 15;
int b = 4;
// Operații aritmetice
System.out.println("Adunare: " + (a + b)); // 19
System.out.println("Scădere: " + (a - b)); // 11
System.out.println("Înmulțire: " + (a * b)); // 60
System.out.println("Împărțire: " + (a / b)); // 3
System.out.println("Modulo: " + (a % b)); // 3// Incrementare și decrementareint x = 5;
System.out.println("x initial: " + x); // 5
System.out.println("x++: " + x++); // 5 (afișează apoi incrementează)
System.out.println("x după: " + x); // 6
System.out.println("++x: " + ++x); // 7 (incrementează apoi afișează)
}
}
Sfat: Atenție la diferența dintre x++ (post-incrementare) și ++x (pre-incrementare)!
Post-incrementarea returnează valoarea veche apoi incrementează, iar pre-incrementarea incrementează mai întâi apoi returnează noua valoare.
2. Operatori Logici
Operatorii logici sunt folosiți pentru a combina sau inversa expresii booleene (true/false).
Operator
Nume
Descriere
Exemplu
&&
AND logic
Returnează true dacă ambele condiții sunt true
(5 > 3) && (8 > 5) → true
||
OR logic
Returnează true dacă cel puțin o condiție este true
(5 > 3) || (8 < 5) → true
!
NOT logic
Inversează valoarea booleană
!(5 > 3) → false
Operatori de Comparație (folosiți cu operatori logici):
Operator
Semnificație
Exemplu
==
Egal cu
5 == 5 → true
!=
Diferit de
5 != 3 → true
>
Mai mare
5 > 3 → true
<
Mai mic
3 < 5 → true
>=
Mai mare sau egal
5 >= 5 → true
<=
Mai mic sau egal
3 <= 5 → true
Exemplu Practic:
OperatoriLogici.java
public class OperatoriLogici {
public static void main(String[] args) {
int varsta = 20;
boolean arePermis = true;
int nota = 8;
// Operator AND (&&)if (varsta >= 18 && arePermis) {
System.out.println("Poate conduce mașina!");
}
// Operator OR (||)if (nota >= 9 || nota == 8) {
System.out.println("Notă foarte bună!");
}
// Operator NOT (!)boolean estePloios = false;
if (!estePloios) {
System.out.println("Vremea este frumoasă!");
}
// Combinații complexeint temperatura = 25;
boolean esteSoare = true;
if ((temperatura >= 20 && temperatura <= 30) && esteSoare && !estePloios) {
System.out.println("Condiții perfecte pentru plimbare!");
}
}
}
📝 Exercițiu:
Creează un program care verifică dacă un student poate trece anul:
Media generală trebuie să fie >= 5
NU trebuie să aibă mai mult de 2 restanțe
Prezența trebuie să fie >= 70%
3. Instrucțiuni de Afișare Condiționale
Instrucțiunile condiționale permit programului să execute diferite blocuri de cod în funcție de anumite condiții.
3.1 Instrucțiunea IF
Sintaxă de bază
if (condiție) {
// cod executat dacă condiția este true
}
3.2 Instrucțiunea IF-ELSE
Exemplu IF-ELSE
int ora = 14;
if (ora < 12) {
System.out.println("Bună dimineața!");
} else {
System.out.println("Bună ziua!");
}
public class VerificareNumar {
public static void main(String[] args) {
int numar = 24;
System.out.println("Analiză pentru numărul: " + numar);
System.out.println("========================");
// Verificare par/imparboolean estePar = (numar % 2 == 0);
if (estePar) {
System.out.println("✓ Numărul este PAR");
// Verificări adiționale pentru numere pareif (numar % 4 == 0) {
System.out.println(" → Este divizibil cu 4");
if (numar % 8 == 0) {
System.out.println(" → Este și divizibil cu 8!");
}
}
if (numar % 10 == 0) {
System.out.println(" → Se termină în 0 (divizibil cu 10)");
}
} else {
System.out.println("✓ Numărul este IMPAR");
// Verificări adiționale pentru numere impareif (numar % 3 == 0) {
System.out.println(" → Este divizibil cu 3");
if (numar % 9 == 0) {
System.out.println(" → Este și divizibil cu 9!");
}
}
if (numar % 5 == 0) {
System.out.println(" → Este divizibil cu 5");
}
}
// Verificări generaleboolean estePrim = true;
if (numar <= 1) {
estePrim = false;
} else {
for (int i = 2; i <= numar/2; i++) {
if (numar % i == 0) {
estePrim = false;
break;
}
}
}
System.out.println("\nInformații adiționale:");
System.out.println(estePrim ? "★ Este număr PRIM!" : "☆ Nu este număr prim");
System.out.println(numar > 0 ? "+ Număr pozitiv" :
numar < 0 ? "- Număr negativ" : "◯ Este zero");
}
}
Soluție: Sistem de Notare Complex
SistemNotareAvansat.java
public class SistemNotareAvansat {
public static void main(String[] args) {
// Date studentString numeStudent = "Ion Popescu";
double notaTeorie = 8.5;
double notaPractica = 9.0;
double notaProiect = 8.0;
// Calculare medie ponderatădouble mediaPonderata = (notaTeorie * 0.3) +
(notaPractica * 0.4) +
(notaProiect * 0.3);
// Determinare calificativ folosind if-elseString calificativ;
String mesajPersonalizat;
if (mediaPonderata >= 9.0) {
calificativ = "A";
mesajPersonalizat = "Excelent! Performanță remarcabilă!";
} else if (mediaPonderata >= 8.0) {
calificativ = "B";
mesajPersonalizat = "Foarte bine! Continuă tot așa!";
} else if (mediaPonderata >= 7.0) {
calificativ = "C";
mesajPersonalizat = "Bine! Există loc de îmbunătățire.";
} else if (mediaPonderata >= 6.0) {
calificativ = "D";
mesajPersonalizat = "Satisfăcător. Mai multă atenție necesară.";
} else {
calificativ = "F";
mesajPersonalizat = "Insuficient. Este nevoie de efort suplimentar.";
}
// Afișare raport
System.out.println("╔══════════════════════════════════════╗");
System.out.println("║ RAPORT EVALUARE STUDENT ║");
System.out.println("╠══════════════════════════════════════╣");
System.out.println("║ Student: " + numeStudent);
System.out.println("╠══════════════════════════════════════╣");
System.out.println("║ Note componente: ║");
System.out.println("║ • Teorie (30%): " + notaTeorie);
System.out.println("║ • Practică (40%): " + notaPractica);
System.out.println("║ • Proiect (30%): " + notaProiect);
System.out.println("╠══════════════════════════════════════╣");
System.out.println("║ MEDIE FINALĂ: " + String.format("%.2f", mediaPonderata));
System.out.println("║ CALIFICATIV: " + calificativ);
System.out.println("╠══════════════════════════════════════╣");
// Verificare bursă și alte beneficiiif (mediaPonderata >= 8.5) {
System.out.println("║ ✓ Eligibil pentru BURSĂ DE MERIT ║");
if (mediaPonderata >= 9.5) {
System.out.println("║ ★ Eligibil pentru BURSĂ DE EXCELENȚĂ║");
}
} else {
System.out.println("║ ✗ Nu este eligibil pentru bursă ║");
}
// Recomandări folosind switch
System.out.println("╠══════════════════════════════════════╣");
System.out.println("║ " + mesajPersonalizat);
switch (calificativ) {
case"A":
case"B":
System.out.println("║ → Recomandare: Cursuri avansate ║");
break;
case"C":
System.out.println("║ → Recomandare: Practică suplimentară║");
break;
case"D":
case"F":
System.out.println("║ → Recomandare: Tutoriat individual ║");
break;
}
System.out.println("╚══════════════════════════════════════╝");
}
}
Observă în soluții:
Folosirea comentariilor pentru claritate
Validarea datelor de intrare
Formatarea frumoasă a output-ului
Combinarea mai multor tipuri de instrucțiuni condiționale