En aquest tema, aprendrem sobre els operadors i les expressions en Objective-C. Els operadors són símbols que indiquen a l'ordinador que realitzi operacions específiques sobre una o més variables. Les expressions són combinacions de variables, constants i operadors que es poden avaluar per obtenir un valor.
Tipus d'Operadors
Objective-C ofereix diversos tipus d'operadors que es poden utilitzar per realitzar diferents operacions. Aquests inclouen:
- Operadors Aritmètics
- Operadors de Comparació
- Operadors Lògics
- Operadors d'Assignació
- Operadors d'Increment i Decrement
- Operadors de Bit a Bit
Operadors Aritmètics
Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques com la suma, la resta, la multiplicació i la divisió.
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
+ |
Suma | a + b |
Suma de a i b |
- |
Resta | a - b |
Resta de b a a |
* |
Multiplicació | a * b |
Producte de a i b |
/ |
Divisió | a / b |
Quocient de a i b |
% |
Mòdul | a % b |
Residual de la divisió de a per b |
Exemple:
int a = 10; int b = 3; int sum = a + b; // 13 int difference = a - b; // 7 int product = a * b; // 30 int quotient = a / b; // 3 int remainder = a % b; // 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à (YES
o NO
).
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
== |
Igual a | a == b |
YES si a és igual a b |
!= |
Diferent de | a != b |
YES si a és diferent de b |
> |
Major que | a > b |
YES si a és major que b |
< |
Menor que | a < b |
YES si a és menor que b |
>= |
Major o igual que | a >= b |
YES si a és major o igual que b |
<= |
Menor o igual que | a <= b |
YES si a és menor o igual que b |
Exemple:
int a = 10; int b = 3; BOOL isEqual = (a == b); // NO BOOL isNotEqual = (a != b); // YES BOOL isGreater = (a > b); // YES BOOL isLess = (a < b); // NO BOOL isGreaterOrEqual = (a >= b); // YES BOOL isLessOrEqual = (a <= b); // NO
Operadors Lògics
Els operadors lògics s'utilitzen per combinar expressions booleanes.
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
&& |
I lògic | a && b |
YES si tant a com b són YES |
` | ` | O lògic | |
! |
No lògic | !a |
YES si a és NO |
Exemple:
BOOL a = YES; BOOL b = NO; BOOL resultAnd = (a && b); // NO BOOL resultOr = (a || b); // YES BOOL resultNot = !a; // NO
Operadors d'Assignació
Els operadors d'assignació s'utilitzen per assignar valors a les variables.
Operador | Descripció | Exemple | Equivalent a |
---|---|---|---|
= |
Assignació | a = b |
Assigna el valor de b a a |
+= |
Assignació amb suma | a += b |
a = a + b |
-= |
Assignació amb resta | a -= b |
a = a - b |
*= |
Assignació amb multiplicació | a *= b |
a = a * b |
/= |
Assignació amb divisió | a /= b |
a = a / b |
%= |
Assignació amb mòdul | a %= b |
a = a % b |
Exemple:
int a = 10; int b = 3; a += b; // a = 13 a -= b; // a = 10 a *= b; // a = 30 a /= b; // a = 10 a %= b; // a = 1
Operadors d'Increment i Decrement
Els operadors d'increment i decrement s'utilitzen per augmentar o disminuir el valor d'una variable en una unitat.
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
++ |
Increment | a++ |
Augmenta a en 1 |
-- |
Decrement | a-- |
Disminueix a en 1 |
Exemple:
Operadors de Bit a Bit
Els operadors de bit a bit s'utilitzen per realitzar operacions a nivell de bit.
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
& |
I de bit a bit | a & b |
I de bit a bit de a i b |
` | ` | O de bit a bit | `a |
^ |
XOR de bit a bit | a ^ b |
XOR de bit a bit de a i b |
~ |
NO de bit a bit | ~a |
Complement a 1 de a |
<< |
Desplaçament a l'esquerra | a << b |
Desplaça a a l'esquerra b bits |
>> |
Desplaçament a la dreta | a >> b |
Desplaça a a la dreta b bits |
Exemple:
int a = 5; // 0101 en binari int b = 3; // 0011 en binari int andResult = a & b; // 0001 en binari, 1 en decimal int orResult = a | b; // 0111 en binari, 7 en decimal int xorResult = a ^ b; // 0110 en binari, 6 en decimal int notResult = ~a; // 1010 en binari (complement a 1), -6 en decimal int leftShift = a << 1; // 1010 en binari, 10 en decimal int rightShift = a >> 1; // 0010 en binari, 2 en decimal
Exercicis Pràctics
Exercici 1
Escriu un programa que calculi la suma, resta, producte, quocient i residu de dues variables x
i y
.
Solució:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int x = 15; int y = 4; int sum = x + y; int difference = x - y; int product = x * y; int quotient = x / y; int remainder = x % y; NSLog(@"Suma: %d", sum); NSLog(@"Resta: %d", difference); NSLog(@"Producte: %d", product); NSLog(@"Quocient: %d", quotient); NSLog(@"Residu: %d", remainder); } return 0; }
Exercici 2
Escriu un programa que compari dues variables a
i b
i imprimeixi si a
és major, menor o igual a b
.
Solució:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int a = 7; int b = 10; if (a > b) { NSLog(@"%d és major que %d", a, b); } else if (a < b) { NSLog(@"%d és menor que %d", a, b); } else { NSLog(@"%d és igual a %d", a, b); } } return 0; }
Exercici 3
Escriu un programa que utilitzi operadors lògics per determinar si una variable x
és positiva i parella.
Solució:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int x = 8; if (x > 0 && x % 2 == 0) { NSLog(@"%d és positiu i parell", x); } else { NSLog(@"%d no és positiu i parell", x); } } return 0; }
Conclusió
En aquest tema, hem après sobre els diferents tipus d'operadors en Objective-C i com utilitzar-los per crear expressions. Hem vist exemples pràctics de cada tipus d'operador i hem practicat amb exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar al següent tema, on explorarem el flux de control en Objective-C.
Curs de Programació en Objective-C
Mòdul 1: Introducció a Objective-C
- Introducció a Objective-C
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Tipus de Dades i Variables
- Operadors i Expressions
Mòdul 2: Flux de Control
Mòdul 3: Funcions i Mètodes
- Definició i Crida de Funcions
- Paràmetres de Funció i Valors de Retorn
- Sintaxi de Mètodes en Objective-C
- Mètodes de Classe i d'Instància
Mòdul 4: Programació Orientada a Objectes
Mòdul 5: Gestió de Memòria
- Introducció a la Gestió de Memòria
- Comptatge Automàtic de Referències (ARC)
- Retenció i Alliberament Manual
- Millors Pràctiques de Gestió de Memòria
Mòdul 6: Temes Avançats
Mòdul 7: Treballant amb Dades
- Gestió d'Arxius
- Serialització i Deserialització
- Conceptes Bàsics de Xarxes
- Treballant amb JSON i XML
Mòdul 8: Desenvolupament d'Interfícies d'Usuari
- Introducció a UIKit
- Vistes i Controladors de Vista
- Disseny Automàtic
- Gestió de l'Entrada de l'Usuari