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
