En aquest tema, explorarem els diferents tipus d'operadors disponibles en Groovy. Els operadors són símbols que indiquen a l'intèrpret que realitzi operacions específiques sobre un o més operands. Groovy, com altres llenguatges de programació, ofereix una varietat d'operadors que es poden classificar en diverses categories.

Tipus d'Operadors

  1. Operadors Aritmètics
  2. Operadors de Comparació
  3. Operadors Lògics
  4. Operadors de Bit a Bit
  5. Operadors d'Assignació
  6. Operadors Especials

  1. Operadors Aritmètics

Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques com la suma, resta, multiplicació, divisió, etc.

Operador Descripció Exemple
+ Suma a + b
- Resta a - b
* Multiplicació a * b
/ Divisió a / b
% Mòdul (residu) a % b
** Exponenciació a ** b

Exemple:

def a = 10
def b = 3

println "Suma: ${a + b}"        // Suma: 13
println "Resta: ${a - b}"       // Resta: 7
println "Multiplicació: ${a * b}" // Multiplicació: 30
println "Divisió: ${a / b}"     // Divisió: 3.3333333333333335
println "Mòdul: ${a % b}"       // Mòdul: 1
println "Exponenciació: ${a ** b}" // Exponenciació: 1000

  1. Operadors de Comparació

Els operadors de comparació s'utilitzen per comparar dos valors. El resultat d'una operació de comparació és 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:

def a = 10
def b = 3

println "Igual a: ${a == b}"    // Igual a: false
println "Diferent de: ${a != b}" // Diferent de: true
println "Major que: ${a > b}"   // Major que: true
println "Menor que: ${a < b}"   // Menor que: false
println "Major o igual que: ${a >= b}" // Major o igual que: true
println "Menor o igual que: ${a <= b}" // Menor o igual que: false

  1. Operadors Lògics

Els operadors lògics s'utilitzen per combinar expressions booleanes.

Operador Descripció Exemple
&& I lògic a && b
` `
! Negació lògica !a

Exemple:

def a = true
def b = false

println "I lògic: ${a && b}"    // I lògic: false
println "O lògic: ${a || b}"    // O lògic: true
println "Negació lògica: ${!a}" // Negació lògica: false

  1. Operadors de Bit a Bit

Els operadors de bit a bit s'utilitzen per realitzar operacions a nivell de bit.

Operador Descripció Exemple
& I de bit a bit a & b
` ` O de bit a bit
^ XOR de bit a bit a ^ b
~ Complement de bit ~a
<< Desplaçament a l'esquerra a << b
>> Desplaçament a la dreta a >> b
>>> Desplaçament a la dreta sense signe a >>> b

Exemple:

def a = 5  // 0101 en binari
def b = 3  // 0011 en binari

println "I de bit a bit: ${a & b}"    // I de bit a bit: 1 (0001 en binari)
println "O de bit a bit: ${a | b}"    // O de bit a bit: 7 (0111 en binari)
println "XOR de bit a bit: ${a ^ b}"  // XOR de bit a bit: 6 (0110 en binari)
println "Complement de bit: ${~a}"    // Complement de bit: -6 (en binari: 1010)
println "Desplaçament a l'esquerra: ${a << 1}" // Desplaçament a l'esquerra: 10 (1010 en binari)
println "Desplaçament a la dreta: ${a >> 1}"   // Desplaçament a la dreta: 2 (0010 en binari)
println "Desplaçament a la dreta sense signe: ${a >>> 1}" // Desplaçament a la dreta sense signe: 2 (0010 en binari)

  1. Operadors d'Assignació

Els operadors d'assignació s'utilitzen per assignar valors a les variables.

Operador Descripció Exemple
= Assignació a = b
+= Assignació amb suma a += b
-= Assignació amb resta a -= b
*= Assignació amb multiplicació a *= b
/= Assignació amb divisió a /= b
%= Assignació amb mòdul a %= b
**= Assignació amb exponenciació a **= b

Exemple:

def a = 10
def b = 3

a += b
println "Assignació amb suma: ${a}" // Assignació amb suma: 13

a -= b
println "Assignació amb resta: ${a}" // Assignació amb resta: 10

a *= b
println "Assignació amb multiplicació: ${a}" // Assignació amb multiplicació: 30

a /= b
println "Assignació amb divisió: ${a}" // Assignació amb divisió: 10.0

a %= b
println "Assignació amb mòdul: ${a}" // Assignació amb mòdul: 1.0

a **= b
println "Assignació amb exponenciació: ${a}" // Assignació amb exponenciació: 1.0

  1. Operadors Especials

Groovy també té alguns operadors especials que no es troben en tots els llenguatges de programació.

Operador Descripció Exemple
?. Operador de navegació segura a?.b
*. Operador de propagació a*.b
?.[] Operador d'indexació segura a?.[index]
?: Operador Elvis a ?: b
as Operador de conversió a as Type
in Operador de pertinença a in b

Exemple:

def a = null
def b = "Hello"

println "Navegació segura: ${a?.length}" // Navegació segura: null
println "Operador Elvis: ${a ?: b}" // Operador Elvis: Hello

def list = [1, 2, 3]
println "Pertinença: ${2 in list}" // Pertinença: true

Exercicis Pràctics

  1. Escriu un script en Groovy que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres donats.
  2. Escriu un script en Groovy que compari dos nombres i imprimeixi si són iguals, diferents, si un és major que l'altre, etc.
  3. Escriu un script en Groovy que utilitzi operadors lògics per combinar diverses expressions booleanes.
  4. Escriu un script en Groovy que utilitzi operadors de bit a bit per realitzar operacions sobre dos nombres.
  5. Escriu un script en Groovy que utilitzi operadors d'assignació per modificar el valor d'una variable.

Solucions

Exercici 1:

def a = 15
def b = 4

println "Suma: ${a + b}"
println "Resta: ${a - b}"
println "Multiplicació: ${a * b}"
println "Divisió: ${a / b}"
println "Mòdul: ${a % b}"

Exercici 2:

def a = 10
def b = 20

println "Igual a: ${a == b}"
println "Diferent de: ${a != b}"
println "Major que: ${a > b}"
println "Menor que: ${a < b}"
println "Major o igual que: ${a >= b}"
println "Menor o igual que: ${a <= b}"

Exercici 3:

def a = true
def b = false
def c = true

println "I lògic: ${a && b}"
println "O lògic: ${a || b}"
println "Negació lògica: ${!a}"
println "Combinació: ${(a && b) || c}"

Exercici 4:

def a = 5  // 0101 en binari
def b = 3  // 0011 en binari

println "I de bit a bit: ${a & b}"
println "O de bit a bit: ${a | b}"
println "XOR de bit a bit: ${a ^ b}"
println "Complement de bit: ${~a}"
println "Desplaçament a l'esquerra: ${a << 1}"
println "Desplaçament a la dreta: ${a >> 1}"
println "Desplaçament a la dreta sense signe: ${a >>> 1}"

Exercici 5:

def a = 10
def b = 3

a += b
println "Assignació amb suma: ${a}"

a -= b
println "Assignació amb resta: ${a}"

a *= b
println "Assignació amb multiplicació: ${a}"

a /= b
println "Assignació amb divisió: ${a}"

a %= b
println "Assignació amb mòdul: ${a}"

a **= b
println "Assignació amb exponenciació: ${a}"

Conclusió

En aquesta secció, hem explorat els diferents tipus d'operadors disponibles en Groovy, incloent-hi operadors aritmètics, de comparació, lògics, de bit a bit, d'assignació i especials. Hem vist exemples pràctics de com utilitzar aquests operadors i hem proporcionat exercicis per reforçar els conceptes apresos. Amb aquesta base, estàs preparat per avançar a la següent secció sobre estructures de control en Groovy.

© Copyright 2024. Tots els drets reservats