En Dart, los operadores son símbolos que se utilizan para realizar operaciones en variables y valores. Los operadores en Dart se pueden clasificar en varias categorías, como operadores aritméticos, operadores de asignación, operadores de comparación, operadores lógicos, operadores de incremento/decremento y operadores de tipo. En esta sección, exploraremos cada uno de estos operadores con ejemplos prácticos.

Operadores Aritméticos

Los operadores aritméticos se utilizan para realizar operaciones matemáticas comunes.

Operador Descripción Ejemplo
+ Suma a + b
- Resta a - b
* Multiplicación a * b
/ División a / b
% Módulo (resto) a % b
~/ División entera a ~/ b

Ejemplo Práctico

void main() {
  int a = 10;
  int b = 3;

  print('Suma: ${a + b}');         // Suma: 13
  print('Resta: ${a - b}');        // Resta: 7
  print('Multiplicación: ${a * b}'); // Multiplicación: 30
  print('División: ${a / b}');     // División: 3.3333333333333335
  print('Módulo: ${a % b}');       // Módulo: 1
  print('División entera: ${a ~/ b}'); // División entera: 3
}

Operadores de Asignación

Los operadores de asignación se utilizan para asignar valores a las variables.

Operador Descripción Ejemplo
= Asignación simple a = b
+= Asignación con suma a += b
-= Asignación con resta a -= b
*= Asignación con multiplicación a *= b
/= Asignación con división a /= b
%= Asignación con módulo a %= b

Ejemplo Práctico

void main() {
  int a = 10;
  int b = 3;

  a += b; // a = a + b
  print('a += b: $a'); // a += b: 13

  a -= b; // a = a - b
  print('a -= b: $a'); // a -= b: 10

  a *= b; // a = a * b
  print('a *= b: $a'); // a *= b: 30

  a ~/= b; // a = a ~/ b
  print('a ~/= b: $a'); // a ~/= b: 10

  a %= b; // a = a % b
  print('a %= b: $a'); // a %= b: 1
}

Operadores de Comparación

Los operadores de comparación se utilizan para comparar dos valores y devuelven un valor booleano (true o false).

Operador Descripción Ejemplo
== Igual a a == b
!= No igual a a != b
> Mayor que a > b
< Menor que a < b
>= Mayor o igual que a >= b
<= Menor o igual que a <= b

Ejemplo Práctico

void main() {
  int a = 10;
  int b = 3;

  print('a == b: ${a == b}'); // a == b: false
  print('a != b: ${a != b}'); // a != b: true
  print('a > b: ${a > b}');   // a > b: true
  print('a < b: ${a < b}');   // a < b: false
  print('a >= b: ${a >= b}'); // a >= b: true
  print('a <= b: ${a <= b}'); // a <= b: false
}

Operadores Lógicos

Los operadores lógicos se utilizan para combinar expresiones booleanas.

Operador Descripción Ejemplo
&& Y lógico (AND) a && b
` `
! No lógico (NOT) !a

Ejemplo Práctico

void main() {
  bool a = true;
  bool b = false;

  print('a && b: ${a && b}'); // a && b: false
  print('a || b: ${a || b}'); // a || b: true
  print('!a: ${!a}');         // !a: false
}

Operadores de Incremento/Decremento

Los operadores de incremento y decremento se utilizan para aumentar o disminuir el valor de una variable en uno.

Operador Descripción Ejemplo
++ Incremento a++ o ++a
-- Decremento a-- o --a

Ejemplo Práctico

void main() {
  int a = 10;

  print('a++: ${a++}'); // a++: 10 (post-incremento)
  print('a: $a');       // a: 11

  print('++a: ${++a}'); // ++a: 12 (pre-incremento)

  print('a--: ${a--}'); // a--: 12 (post-decremento)
  print('a: $a');       // a: 11

  print('--a: ${--a}'); // --a: 10 (pre-decremento)
}

Operadores de Tipo

Los operadores de tipo se utilizan para verificar el tipo de un objeto o para convertir un objeto a otro tipo.

Operador Descripción Ejemplo
is Verifica el tipo a is int
is! Verifica que no es el tipo a is! int
as Conversión de tipo a as int

Ejemplo Práctico

void main() {
  var a = 10;

  print('a is int: ${a is int}');   // a is int: true
  print('a is! String: ${a is! String}'); // a is! String: true

  dynamic b = 'Hello';
  String c = b as String;
  print('c: $c'); // c: Hello
}

Ejercicios Prácticos

Ejercicio 1

Escribe un programa en Dart que realice las siguientes operaciones con dos números enteros x y y:

  1. Suma
  2. Resta
  3. Multiplicación
  4. División
  5. Módulo

Solución:

void main() {
  int x = 15;
  int y = 4;

  print('Suma: ${x + y}');         // Suma: 19
  print('Resta: ${x - y}');        // Resta: 11
  print('Multiplicación: ${x * y}'); // Multiplicación: 60
  print('División: ${x / y}');     // División: 3.75
  print('Módulo: ${x % y}');       // Módulo: 3
}

Ejercicio 2

Escribe un programa en Dart que verifique si un número n es mayor que 10 y menor que 20.

Solución:

void main() {
  int n = 15;

  if (n > 10 && n < 20) {
    print('$n es mayor que 10 y menor que 20'); // 15 es mayor que 10 y menor que 20
  } else {
    print('$n no cumple la condición');
  }
}

Ejercicio 3

Escribe un programa en Dart que convierta un valor dinámico a un tipo específico y verifique su tipo.

Solución:

void main() {
  dynamic value = 42;

  if (value is int) {
    print('El valor es un entero'); // El valor es un entero
  } else {
    print('El valor no es un entero');
  }

  String strValue = value.toString();
  print('strValue: $strValue'); // strValue: 42
}

Conclusión

En esta sección, hemos cubierto los operadores básicos en Dart, incluyendo operadores aritméticos, de asignación, de comparación, lógicos, de incremento/decremento y de tipo. Estos operadores son fundamentales para realizar operaciones en tus programas y son esenciales para cualquier programador que trabaje con Dart. Asegúrate de practicar con los ejemplos y ejercicios proporcionados para reforzar tu comprensión de estos conceptos. En la próxima sección, exploraremos las sentencias de control de flujo en Dart.

© Copyright 2024. Todos los derechos reservados