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
