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

  1. Operadors Aritmètics
  2. Operadors d'Assignació
  3. Operadors de Comparació
  4. Operadors Lògics
  5. Operadors Unaris
  6. Operadors Bit a Bit
  7. Operadors de Condició (Ternari)

  1. 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
    }
}

  1. 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
    }
}

  1. 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
    }
}

  1. 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
    }
}

  1. 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
    }
}

  1. 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
    }
}

  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

  1. Escriu un programa que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres enters introduïts per l'usuari.
  2. Escriu un programa que determini si un nombre introduït per l'usuari és parell o senar utilitzant l'operador mòdul.
  3. Escriu un programa que utilitzi l'operador ternari per determinar si un nombre introduït per l'usuari és positiu, negatiu o zero.

Solucions:

  1. 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));
    }
}
  1. 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.");
        }
    }
}
  1. 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

Mòdul 2: Flux de Control

Mòdul 3: Programació Orientada a Objectes

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

Mòdul 8: Multithreading i Concurrència

Mòdul 9: Xarxes

Mòdul 10: Temes Avançats

Mòdul 11: Frameworks i Llibreries de Java

Mòdul 12: Construcció d'Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats