Els operadors són símbols que indiquen a l'intèrpret que realitzi operacions específiques en una o més operands. En Java, els operadors es poden classificar en diverses categories segons la seva funcionalitat. A continuació, explorarem els diferents tipus d'operadors disponibles en Java.
Tipus d'Operadors
- Operadors Aritmètics
- Operadors d'Assignació
- Operadors de Comparació
- Operadors Lògics
- Operadors Unaris
- Operadors Bit a Bit
- Operadors de Condició (Ternari)
- Operadors Aritmètics
Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques com la suma, resta, multiplicació, divisió i mòdul.
Operador | Descripció | Exemple |
---|---|---|
+ |
Suma | a + b |
- |
Resta | a - b |
* |
Multiplicació | a * b |
/ |
Divisió | a / b |
% |
Mòdul | a % b |
Exemple:
public class OperadorsAritmetics { public static void main(String[] args) { int a = 10; int b = 5; System.out.println("Suma: " + (a + b)); // 15 System.out.println("Resta: " + (a - b)); // 5 System.out.println("Multiplicació: " + (a * b)); // 50 System.out.println("Divisió: " + (a / b)); // 2 System.out.println("Mòdul: " + (a % b)); // 0 } }
- Operadors d'Assignació
Els operadors d'assignació s'utilitzen per assignar valors a les variables.
Operador | Descripció | Exemple |
---|---|---|
= |
Assignació simple | a = b |
+= |
Assignació amb suma | a += b (equivalent a a = a + b ) |
-= |
Assignació amb resta | a -= b (equivalent a a = a - b ) |
*= |
Assignació amb multiplicació | a *= b (equivalent a a = a * b ) |
/= |
Assignació amb divisió | a /= b (equivalent a a = a / b ) |
%= |
Assignació amb mòdul | a %= b (equivalent a a = a % b ) |
Exemple:
public class OperadorsAssignacio { public static void main(String[] args) { int a = 10; int b = 5; a += b; // a = a + b System.out.println("a += b: " + a); // 15 a -= b; // a = a - b System.out.println("a -= b: " + a); // 10 a *= b; // a = a * b System.out.println("a *= b: " + a); // 50 a /= b; // a = a / b System.out.println("a /= b: " + a); // 10 a %= b; // a = a % b System.out.println("a %= b: " + a); // 0 } }
- Operadors de Comparació
Els operadors de comparació s'utilitzen per comparar dos valors. Retornen un valor booleà (true
o false
).
Operador | Descripció | Exemple |
---|---|---|
== |
Igual a | a == b |
!= |
Diferent de | a != b |
> |
Major que | a > b |
< |
Menor que | a < b |
>= |
Major o igual que | a >= b |
<= |
Menor o igual que | a <= b |
Exemple:
public class OperadorsComparacio { public static void main(String[] args) { int a = 10; int b = 5; System.out.println("a == b: " + (a == b)); // false System.out.println("a != b: " + (a != b)); // true System.out.println("a > b: " + (a > b)); // true System.out.println("a < b: " + (a < b)); // false System.out.println("a >= b: " + (a >= b)); // true System.out.println("a <= b: " + (a <= b)); // false } }
- Operadors Lògics
Els operadors lògics s'utilitzen per combinar expressions booleanes.
Operador | Descripció | Exemple |
---|---|---|
&& |
AND lògic | a && b |
` | ` | |
! |
NOT lògic | !a |
Exemple:
public class OperadorsLogics { public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println("a && b: " + (a && b)); // false System.out.println("a || b: " + (a || b)); // true System.out.println("!a: " + (!a)); // false } }
- Operadors Unaris
Els operadors unaris s'apliquen a un sol operand per produir un nou valor.
Operador | Descripció | Exemple |
---|---|---|
+ |
Operador unari positiu | +a |
- |
Operador unari negatiu | -a |
++ |
Incrementa en 1 | a++ o ++a |
-- |
Decrementa en 1 | a-- o --a |
Exemple:
public class OperadorsUnaris { public static void main(String[] args) { int a = 10; System.out.println("a: " + a); // 10 System.out.println("++a: " + ++a); // 11 System.out.println("a++: " + a++); // 11 System.out.println("a: " + a); // 12 System.out.println("--a: " + --a); // 11 System.out.println("a--: " + a--); // 11 System.out.println("a: " + a); // 10 } }
- Operadors Bit a Bit
Els operadors bit a bit s'utilitzen per realitzar operacions a nivell de bits.
Operador | Descripció | Exemple |
---|---|---|
& |
AND bit a bit | a & b |
` | ` | OR bit a bit |
^ |
XOR bit a bit | a ^ b |
~ |
Complement bit a bit | ~a |
<< |
Desplaçament a l'esquerra | a << 2 |
>> |
Desplaçament a la dreta | a >> 2 |
>>> |
Desplaçament a la dreta sense signe | a >>> 2 |
Exemple:
public class OperadorsBitABit { public static void main(String[] args) { int a = 5; // 0101 en binari int b = 3; // 0011 en binari System.out.println("a & b: " + (a & b)); // 0001 -> 1 System.out.println("a | b: " + (a | b)); // 0111 -> 7 System.out.println("a ^ b: " + (a ^ b)); // 0110 -> 6 System.out.println("~a: " + (~a)); // 1010 -> -6 (en complement a dos) System.out.println("a << 2: " + (a << 2)); // 010100 -> 20 System.out.println("a >> 2: " + (a >> 2)); // 0001 -> 1 System.out.println("a >>> 2: " + (a >>> 2)); // 0001 -> 1 } }
- Operador de Condició (Ternari)
L'operador ternari és una forma concisa d'escriure una expressió condicional.
Operador | Descripció | Exemple |
---|---|---|
? : |
Condició ternària | condició ? valor1 : valor2 |
Exemple:
public class OperadorTernari { public static void main(String[] args) { int a = 10; int b = 5; int max = (a > b) ? a : b; System.out.println("El valor màxim és: " + max); // 10 } }
Exercicis Pràctics
- Escriu un programa que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres enters introduïts per l'usuari.
- Escriu un programa que determini si un nombre introduït per l'usuari és parell o senar utilitzant l'operador mòdul.
- Escriu un programa que utilitzi l'operador ternari per determinar si un nombre introduït per l'usuari és positiu, negatiu o zero.
Solucions:
- Càlcul de les operacions bàsiques:
import java.util.Scanner; public class Calculadora { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Introdueix el primer nombre: "); int a = scanner.nextInt(); System.out.print("Introdueix el segon nombre: "); int b = scanner.nextInt(); System.out.println("Suma: " + (a + b)); System.out.println("Resta: " + (a - b)); System.out.println("Multiplicació: " + (a * b)); System.out.println("Divisió: " + (a / b)); System.out.println("Mòdul: " + (a % b)); } }
- Determinar si un nombre és parell o senar:
import java.util.Scanner; public class ParellSenar { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Introdueix un nombre: "); int nombre = scanner.nextInt(); if (nombre % 2 == 0) { System.out.println("El nombre és parell."); } else { System.out.println("El nombre és senar."); } } }
- Determinar si un nombre és positiu, negatiu o zero:
import java.util.Scanner; public class PositiuNegatiuZero { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Introdueix un nombre: "); int nombre = scanner.nextInt(); String resultat = (nombre > 0) ? "positiu" : (nombre < 0) ? "negatiu" : "zero"; System.out.println("El nombre és " + resultat + "."); } }
Conclusió
En aquesta secció, hem explorat els diferents tipus d'operadors disponibles en Java, incloent-hi operadors aritmètics, d'assignació, de comparació, lògics, unaris, bit a bit i el ternari. Aquests operadors són fonamentals per a la manipulació de dades i la presa de decisions en els programes. Practicar amb aquests operadors és essencial per dominar la programació en Java.
Curs de Programació en Java
Mòdul 1: Introducció a Java
- Introducció a Java
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Operadors
Mòdul 2: Flux de Control
Mòdul 3: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Mètodes
- Constructors
- Herència
- Polimorfisme
- Encapsulació
- Abstracció
Mòdul 4: Programació Orientada a Objectes Avançada
Mòdul 5: Estructures de Dades i Col·leccions
Mòdul 6: Gestió d'Excepcions
Mòdul 7: Entrada/Sortida de Fitxers
- Lectura de Fitxers
- Escriptura de Fitxers
- Fluxos de Fitxers
- BufferedReader i BufferedWriter
- Serialització
Mòdul 8: Multithreading i Concurrència
- Introducció al Multithreading
- Creació de Fils
- Cicle de Vida dels Fils
- Sincronització
- Utilitats de Concurrència
Mòdul 9: Xarxes
- Introducció a les Xarxes
- Sockets
- ServerSocket
- DatagramSocket i DatagramPacket
- URL i HttpURLConnection