Apex Academy
Módulo 2·06·16 min

Break y Continue

continue salta al siguiente registro; break deja de recorrer en cuanto encuentras lo que buscabas.

En Admin esLa salida «no aplica» que vuelve al Loop, y dejar de buscar al encontrar

✓ En esta sub-lección

  1. 01Usar continue para saltarse los registros que no aplican sin anidar más if.
  2. 02Usar break para detener una búsqueda en cuanto aparece el resultado.
  3. 03Saber qué variable guarda el hallazgo y cómo distinguir «encontrado» de «no encontrado».

La nutria: ¿Te acuerdas? · Repaso de la lección 5

Quieres sumar los importes de una lista de oportunidades. ¿Dónde declaras Decimal total = 0;?

Un for recorre todos los elementos, uno detrás de otro. A veces eso sobra: hay registros que no te interesan, o solo necesitas el primero que cumpla algo. Dos palabras cambian el recorrido desde dentro: continue y break.

La nutria: El paralelo de Admin

En un Loop de Flow, cuando un registro no aplicaba, yo ponía un Decision cuya salida «no aplica» volvía directa al Loop, sin pasar por las acciones. Eso es continue. break no tiene un botón en Flow: es lo que haces cuando buscas un registro en una vista de lista y dejas de leer en cuanto lo ves.

continue: siguiente, por favor

continue abandona la vuelta actual y salta a la siguiente. Todo lo que hay debajo de él dentro del bucle se omite para ese elemento. Su gran ventaja es de lectura: en lugar de meter todo el trabajo dentro de un if, descartas lo que no aplica arriba del todo y el resto del cuerpo queda plano.

Apex
Integer openCases = 0;
for (Case c : cases) {
    if (c.Status == 'Closed') {
        continue;              // este no cuenta: al siguiente
    }
    openCases++;
    System.debug('Pendiente: ' + c.Subject);
}
Una cláusula de guarda: «si no aplica, sigue». El trabajo real queda sin sangría extra.

break: ya lo tengo

break sale del bucle por completo, en ese mismo instante. El código continúa debajo del bucle y los elementos que quedaban ni se miran. Es la herramienta de búsqueda: recorres hasta encontrar y paras.

Apex
Case firstUrgent;              // null = todavía no encontrado
for (Case c : cases) {
    if (c.Priority == 'High' && c.Status == 'New') {
        firstUrgent = c;
        break;                 // no hace falta mirar más
    }
}

if (firstUrgent == null) {
    System.debug('No hay casos urgentes nuevos');
} else {
    System.debug('Atender primero: ' + firstUrgent.Subject);
}
La variable del hallazgo se declara fuera y empieza en null. Después del bucle, null significa «no había ninguno».
for (Lead l : leads) { if (String.isBlank(l.Email)) continue; if (l.Rating == 'Hot') { first = l; break; } }
  1. DíazWarmcontinue
  2. MéndezCold
  3. RuizHot
  4. TorresHot
  5. SotoHot

Paso 1 de 5

Díaz no tiene email: continue salta al siguiente sin ejecutar el resto del cuerpo. No se le puede llamar, así que ni se mira si es Hot.

continue vuelve a la cabecera del bucle; break salta fuera de él.