En aquest tema, explorarem els diferents tipus d'operadors disponibles en Dart. Els operadors són símbols que indiquen a l'intèrpret que realitzi operacions específiques sobre un o més operands. Els operadors en Dart es poden classificar en diverses categories:
- Operadors aritmètics
- Operadors de comparació
- Operadors lògics
- Operadors d'assignació
- Operadors de bits
- Operadors de tipus
- 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 |
~/ |
Divisió sencera | a ~/ b |
Exemple pràctic
void main() { int a = 10; int b = 3; print('Suma: ${a + b}'); // Suma: 13 print('Resta: ${a - b}'); // Resta: 7 print('Multiplicació: ${a * b}');// Multiplicació: 30 print('Divisió: ${a / b}'); // Divisió: 3.3333333333333335 print('Mòdul: ${a % b}'); // Mòdul: 1 print('Divisió sencera: ${a ~/ b}'); // Divisió sencera: 3 }
- 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 pràctic
void main() { int a = 10; int b = 3; print('Igual a: ${a == b}'); // Igual a: false print('Diferent de: ${a != b}'); // Diferent de: true print('Major que: ${a > b}'); // Major que: true print('Menor que: ${a < b}'); // Menor que: false print('Major o igual que: ${a >= b}'); // Major o igual que: true print('Menor o igual que: ${a <= b}'); // Menor o igual que: false }
- Operadors lògics
Els operadors lògics s'utilitzen per combinar expressions booleanes.
Operador | Descripció | Exemple |
---|---|---|
&& |
I lògic (AND) | a && b |
` | ` | |
! |
Negació lògica (NOT) | !a |
Exemple pràctic
void main() { bool a = true; bool b = false; print('I lògic: ${a && b}'); // I lògic: false print('O lògic: ${a || b}'); // O lògic: true print('Negació lògica: ${!a}'); // Negació lògica: false }
- 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 |
Exemple pràctic
void main() { int a = 10; int b = 3; a += b; // a = a + b print('Assignació amb suma: $a'); // Assignació amb suma: 13 a -= b; // a = a - b print('Assignació amb resta: $a'); // Assignació amb resta: 10 a *= b; // a = a * b print('Assignació amb multiplicació: $a'); // Assignació amb multiplicació: 30 a ~/= b; // a = a ~/ b print('Assignació amb divisió sencera: $a'); // Assignació amb divisió sencera: 10 a %= b; // a = a % b print('Assignació amb mòdul: $a'); // Assignació amb mòdul: 1 }
- Operadors de bits
Els operadors de bits s'utilitzen per realitzar operacions a nivell de bit.
Operador | Descripció | Exemple |
---|---|---|
& |
I a nivell de bit (AND) | a & b |
` | ` | O a nivell de bit (OR) |
^ |
XOR a nivell de bit | a ^ b |
~ |
Complement a nivell de bit | ~a |
<< |
Desplaçament a l'esquerra | a << b |
>> |
Desplaçament a la dreta | a >> b |
Exemple pràctic
void main() { int a = 5; // 0101 en binari int b = 3; // 0011 en binari print('I a nivell de bit: ${a & b}'); // I a nivell de bit: 1 (0001 en binari) print('O a nivell de bit: ${a | b}'); // O a nivell de bit: 7 (0111 en binari) print('XOR a nivell de bit: ${a ^ b}'); // XOR a nivell de bit: 6 (0110 en binari) print('Complement a nivell de bit: ${~a}'); // Complement a nivell de bit: -6 print('Desplaçament a l\'esquerra: ${a << b}'); // Desplaçament a l'esquerra: 40 (101000 en binari) print('Desplaçament a la dreta: ${a >> b}'); // Desplaçament a la dreta: 0 (0000 en binari) }
- Operadors de tipus
Els operadors de tipus s'utilitzen per comprovar el tipus d'un objecte o per convertir-lo a un altre tipus.
Operador | Descripció | Exemple |
---|---|---|
is |
Comprova el tipus | a is int |
is! |
Comprova que no és del tipus | a is! int |
as |
Conversió de tipus | a as int |
Exemple pràctic
void main() { var a = 10; print('És un enter: ${a is int}'); // És un enter: true print('No és un enter: ${a is! int}'); // No és un enter: false dynamic b = 'Hola'; var c = b as String; print('Conversió de tipus: $c'); // Conversió de tipus: Hola }
Exercicis Pràctics
- Escriu un programa que calculi la suma, resta, multiplicació i divisió de dos nombres enters introduïts per l'usuari.
- Escriu un programa que comprovi si un nombre introduït per l'usuari és parell o senar.
- Escriu un programa que comprovi si una cadena introduïda per l'usuari és un número.
Solucions
- Càlcul de suma, resta, multiplicació i divisió
import 'dart:io'; void main() { print('Introdueix el primer nombre:'); int a = int.parse(stdin.readLineSync()!); print('Introdueix el segon nombre:'); int b = int.parse(stdin.readLineSync()!); print('Suma: ${a + b}'); print('Resta: ${a - b}'); print('Multiplicació: ${a * b}'); print('Divisió: ${a / b}'); }
- Comprovació de nombre parell o senar
import 'dart:io'; void main() { print('Introdueix un nombre:'); int a = int.parse(stdin.readLineSync()!); if (a % 2 == 0) { print('$a és parell'); } else { print('$a és senar'); } }
- Comprovació si una cadena és un número
import 'dart:io'; void main() { print('Introdueix una cadena:'); String input = stdin.readLineSync()!; if (int.tryParse(input) != null) { print('$input és un número'); } else { print('$input no és un número'); } }
Conclusió
En aquest tema, hem explorat els diferents tipus d'operadors disponibles en Dart, incloent-hi operadors aritmètics, de comparació, lògics, d'assignació, de bits i de tipus. Hem vist exemples pràctics de com utilitzar aquests operadors i hem proporcionat exercicis per reforçar els conceptes apresos. Amb aquests coneixements, estàs preparat per avançar al següent tema sobre sentències de control de flux.
Curs de Programació en Dart
Mòdul 1: Introducció a Dart
- Introducció a Dart
- Configuració de l'Entorn de Desenvolupament
- El Teu Primer Programa en Dart
- Sintaxi i Estructura Bàsica
Mòdul 2: Conceptes Bàsics de Dart
Mòdul 3: Col·leccions
Mòdul 4: Programació Orientada a Objectes en Dart
Mòdul 5: Funcionalitats Avançades de Dart
Mòdul 6: Gestió d'Errors i Depuració
Mòdul 7: Paquets i Biblioteques de Dart
Mòdul 8: Dart per a Web i Mòbil
- Introducció a Flutter
- Construcció d'una Aplicació Simple amb Flutter
- Dart per al Desenvolupament Web