---
title: "Eliminar bandera de control"
type: "refactoring-technique"
slug: "remove-control-flag"
url: "http://localhost:3000/es/remove-control-flag.md"
category: "Simplifying Conditional Expressions"
description: "Problema: Tienes una variable booleana que actúa como bandera de control para múltiples expresiones booleanas. Solución: En lugar de la variable, utiliza break, continue y return."
---
# Eliminar bandera de control

> Problema: Tienes una variable booleana que actúa como bandera de control para múltiples expresiones booleanas. Solución: En lugar de la variable, utiliza break, continue y return.

## Problem

Tienes una variable booleana que actúa como bandera de control para múltiples expresiones booleanas.

## Solution

En lugar de la variable, utiliza `break`, `continue` y `return`.

## Why Refactor

Las banderas de control se remontan a tiempos pasados, cuando los programadores «como Dios manda» siempre tenían un único punto de entrada para sus funciones (la línea de declaración de la función) y un único punto de salida (al final mismo de la función).

En los lenguajes de programación modernos, esta manía estilística está obsoleta, ya que disponemos de operadores especiales para modificar el flujo de control en bucles y otras construcciones complejas:

* `break`: detiene el bucle
* `continue`: detiene la ejecución de la rama actual del bucle y pasa a comprobar las condiciones del bucle en la siguiente iteración
* `return`: detiene la ejecución de toda la función y devuelve su resultado si se proporciona en el operador

## Benefits

* El código con banderas de control suele ser mucho más pesado que el código escrito con operadores de flujo de control.

## How to Refactor

1. Encuentra la asignación de valor a la bandera de control que provoca la salida del bucle o de la iteración actual.
2. Reemplázala por `break`, si se trata de una salida de un bucle; `continue`, si se trata de una salida de una iteración, o `return`, si necesitas devolver este valor desde la función.
3. Elimina el código restante y las comprobaciones asociadas a la bandera de control.
