Domina las sentencias switch de JavaScript: sintaxis, casos de uso y ejemplos prácticos

目次

1. Introducción: ¿Qué es un switch case?

En JavaScript, el ramificado condicional juega un papel crucial en el control del flujo de un programa. Entre estas estructuras, la sentencia switch se utiliza como una sintaxis que maneja de forma eficiente múltiples condiciones.
Una sentencia switch es útil cuando se desea ejecutar diferentes procesos basándose en un valor específico. Por ejemplo, se emplea al mostrar distintos mensajes según el día de la semana o al cambiar acciones en función de la entrada del usuario.

Casos de uso de la sentencia switch

La sentencia switch resulta particularmente eficaz en los siguientes escenarios:

  • Cuando se quieren procesar múltiples condiciones de forma eficiente: en lugar de repetir sentencias if, usar switch ayuda a simplificar el código.
  • Cuando se desean ejecutar procesos diferentes para cada condición: útil para cambiar el comportamiento según los datos.
  • Cuando se busca mejorar la legibilidad del código: su estructura es clara y ayuda a organizar la lógica condicional.

Características clave de switch

  • Ramificación basada en valores: la sentencia switch verifica si el resultado evaluado de una expresión coincide con un valor específico.
  • Control mediante break: la sentencia break detiene la ejecución evitando que se continúe al siguiente caso.
  • Uso de default: define el comportamiento por defecto cuando ningún caso coincide.

Resumen

La sentencia switch es una herramienta útil que organiza el ramificado condicional y mejora la legibilidad en JavaScript. En la siguiente sección explicaremos su sintaxis básica y cómo usarla con ejemplos concretos.

2. Sintaxis básica y roles

En JavaScript, la sentencia switch es una estructura de control conveniente que se emplea para ramificar la lógica según valores específicos. Esta sección describe la sintaxis básica y el rol de cada elemento en detalle.

Sintaxis básica

A continuación se muestra la estructura básica de una sentencia switch.

switch (式) {
  case 値1:
    // 値1に一致した場合の処理
    break;
  case 値2:
    // 値2に一致した場合の処理
    break;
  default:
    // どの値にも一致しなかった場合の処理
}

Aquí se explica cada elemento.

Detalle de los elementos de la sintaxis

  1. switch (expresión)
  • La expresión contiene el valor o la expresión calculada que se comparará.
  1. case valor:
  • Cada caso especifica un valor con el que se comparará la expresión.
  1. break;
  • La sentencia break sale del switch después de ejecutar el caso coincidente.
  1. default:
  • Define el procesamiento que se realiza cuando ningún caso coincide.

Ejemplo práctico

A continuación se muestra un ejemplo de cómo mostrar un mensaje según el día de la semana.

let day = "月曜日";

switch (day) {
  case "月曜日":
    console.log("週の始まりです。頑張りましょう!");
    break;
  case "金曜日":
    console.log("もうすぐ週末です。");
    break;
  default:
    console.log("通常の日です。");
}

Resumen

La sentencia switch proporciona un ramificado condicional simple y fácil de leer. A continuación, presentaremos «3. Ejemplos prácticos de switch» para explorar usos más avanzados.

3. Ejemplos prácticos de la sentencia switch

Aquí explicamos la sentencia switch de JavaScript mediante ejemplos concretos—desde básicos hasta avanzados—para que comprendas cómo se utiliza en la programación del mundo real.

Ramificación condicional básica

Ejemplo 1: Mostrar un mensaje según el día de la semana

let day = "水曜日";

switch (day) {
  case "月曜日":
    console.log("今週も頑張りましょう!");
    break;
  case "水曜日":
    console.log("週の半ばです。あと少し!");
    break;
  case "金曜日":
    console.log("週末まであと1日!");
    break;
  default:
    console.log("リラックスできる日です。");
}

Agrupación de múltiples casos

Ejemplo 2: Diferenciar entre días laborables y fines de semana

let day = "土曜日";

switch (day) {
  case "月曜日":
  case "火曜日":
  case "水曜日":
  case "木曜日":
  case "金曜日":
    console.log("今日は平日です。");
    break;
  case "土曜日":
  case "日曜日":
    console.log("今日は週末です。");
    break;
  default:
    console.log("無効な曜日です。");
}

Combinación de funciones con switch

Ejemplo 3: Permisos de usuario

function getUserPermission(role) {
  switch (role) {
    case "admin":
      return "すべての権限があります。";
    case "editor":
      return "編集権限があります。";
    case "viewer":
      return "閲覧のみ可能です。";
    default:
      return "権限がありません。";
  }
}

console.log(getUserPermission("editor"));

Resumen

A través de estos ejemplos prácticos, ahora deberías comprender mejor cómo usar la sentencia switch. A continuación, cubriremos «4. switch vs if – ¿Cuál deberías usar?»

4. switch vs if — ¿Cuál deberías elegir?

Tanto switch como if pueden procesar ramificaciones condicionales en JavaScript, pero se utilizan de manera diferente. Comprender sus diferencias te ayuda a elegir la adecuada para cada situación.

Diferencias básicas

Featureswitchif
Type of conditionBest for comparing specific valuesBest for complex expressions or range checks
ReadabilityEasier to organize many conditionsSimple conditions can be short and clear
FlexibilityLimited to fixed-value comparisonsAllows complex logical comparisons
PerformanceSometimes faster than if in certain situationsFast and efficient when conditions are few

Comparación con ejemplos

Ejemplo 1: Usando switch

let color = "赤";

switch (color) {
  case "赤":
    console.log("ストップ!");
    break;
  case "黄":
    console.log("注意!");
    break;
  case "青":
    console.log("進んでください!");
    break;
  default:
    console.log("無効な色です。");
}

Ejemplo 2: Usando if

let score = 85;

if (score >= 90) {
  console.log("評価: A");
} else if (score >= 75) {
  console.log("評価: B");
} else if (score >= 50) {
  console.log("評価: C");
} else {
  console.log("評価: F");
}

Resumen

Al elegir entre switch y if de manera adecuada, puedes escribir código eficiente. A continuación, discutiremos «5. Consejos para prevenir errores».

5. Consejos para prevenir errores

La sentencia switch de JavaScript es conveniente, pero un uso inadecuado puede generar errores o comportamientos inesperados. Esta sección explica los puntos clave para evitar errores.

1. Olvidar el break provoca caída (fall‑through)

Ejemplo:

let fruit = "リンゴ";

switch (fruit) {
  case "リンゴ":
    console.log("リンゴが選ばれました。");
  case "バナナ":
    console.log("バナナが選ばれました。");
    break;
  default:
    console.log("その他のフルーツです。");
}

Resultado:

リンゴが選ばれました。
バナナが選ばれました。

Solución:

switch (fruit) {
  case "リンゴ":
    console.log("リンゴが選ばれました。");
    break;
  case "バナナ":
    console.log("バナナが選ばれました。");
    break;
  default:
    console.log("その他のフルーツです。");
}

2. No olvidar default

Ejemplo:

let command = "停止";

switch (command) {
  case "開始":
    console.log("システムを起動します。");
    break;
  case "終了":
    console.log("システムを終了します。");
    break;
}

Solución:

default:
  console.log("無効なコマンドです。");

3. Cuidado con las incompatibilidades de tipo

Ejemplo:

let value = 1;

switch (value) {
  case "1":
    console.log("文字列の1です。");
    break;
  case 1:
    console.log("数値の1です。");
    break;
  default:
    console.log("一致しません。");
}

Resumen

Al seguir estos consejos, puedes prevenir errores y escribir código eficiente y mantenible.

6. Técnicas avanzadas para switch

La sentencia switch de JavaScript puede usarse no solo para ramificaciones básicas, sino también para implementaciones más flexibles y avanzadas.

1. Agrupar múltiples casos

Ejemplo:

let day = "土曜日";

switch (day) {
  case "月曜日":
  case "火曜日":
  case "水曜日":
  case "木曜日":
  case "金曜日":
    console.log("今日は平日です。");
    break;
  case "土曜日":
  case "日曜日":
    console.log("今日は週末です。");
    break;
  default:
    console.log("無効な曜日です。");
}

2. Sentencias switch anidadas

Ejemplo:

let menu = "ドリンク";
let subMenu = "コーヒー";

switch (menu) {
  case "フード":
    switch (subMenu) {
      case "ハンバーガー":
        console.log("ハンバーガーが選ばれました。");
        break;
      default:
        console.log("無効なフードメニューです。");
    }
    break;

  case "ドリンク":
    switch (subMenu) {
      case "コーヒー":
        console.log("コーヒーが選ばれました。");
        break;
      default:
        console.log("無効なドリンクメニューです。");
    }
    break;
}

Resumen

Utilizar estas técnicas avanzadas te permite manejar ramificaciones complejas de manera más eficiente.

7. Preguntas frecuentes: Preguntas comunes y solución de problemas

Muchos desarrolladores encuentran problemas similares al usar la sentencia switch de JavaScript. Aquí hay preguntas comunes y sus soluciones.

Q1: ¿Qué ocurre si olvidas el break?

Ejemplo:

let value = 2;

switch (value) {
  case 1:
    console.log("1が選択されました。");
  case 2:
    console.log("2が選択されました。");
  case 3:
    console.log("3が選択されました。");
}

Resultado:

2が選択されました。
3が選択されました。

Solución:

break;

Q2: ¿Es obligatorio el default?

Ejemplo:

let fruit = "パイナップル";

switch (fruit) {
  case "リンゴ":
    console.log("リンゴが選ばれました。");
    break;
  case "バナナ":
    console.log("バナナが選ばれました。");
    break;
}

Solución:

default:
  console.log("不明なフルーツです。");

Q3: ¿Puede switch comparar rangos?

Ejemplo:

let score = 85;

switch (true) {
  case score >= 90:
    console.log("評価: A");
    break;
  case score >= 75:
    console.log("評価: B");
    break;
  default:
    console.log("評価: F");
}

Resumen

Utiliza este FAQ para manejar errores y mejorar tu comprensión de la sentencia switch.

8. Ejemplos de Código y Problemas de Práctica

Esta sección ofrece código de ejemplo y problemas de práctica usando la sentencia switch. Pruébalos para profundizar tu entendimiento.

1. Código de ejemplo básico

Ejemplo 1: Determinar la estación del año según el mes

let month = 3;

switch (month) {
  case 12:
  case 1:
  case 2:
    console.log("冬です。");
    break;
  case 3:
  case 4:
  case 5:
    console.log("春です。");
    break;
  case 6:
  case 7:
  case 8:
    console.log("夏です。");
    break;
  case 9:
  case 10:
  case 11:
    console.log("秋です。");
    break;
  default:
    console.log("無効な月です。");
}

Ejemplo 2: Permisos de usuario

let role = "editor";

switch (role) {
  case "admin":
    console.log("すべての権限があります。");
    break;
  case "editor":
    console.log("編集権限があります。");
    break;
  case "viewer":
    console.log("閲覧権限のみあります。");
    break;
  default:
    console.log("権限がありません。");
}

2. Problemas de práctica

Problema 1: Detector de día laborable/fines de semana

Crea un programa que determine si un día dado es laborable o fin de semana.

Problema 2: Cálculo de carrito de compras

Crea un programa que calcule el costo total según la categoría del producto y la cantidad.

Problema 3: Sistema de menú telefónico

Crea un programa que imprima una opción basada en la entrada numérica del usuario.

Resumen

Utiliza estos problemas de práctica para reforzar tus habilidades con la sentencia switch.

9. Resumen y Aplicaciones Futuras

Este artículo ofreció una explicación completa de la sentencia switch de JavaScript, desde lo básico hasta técnicas avanzadas. A continuación, los puntos clave y los próximos pasos para seguir mejorando.

1. Principales conclusiones

  • Sintaxis y características básicas: Usa case, break y default para escribir lógica condicional clara.
  • Comparación con if: switch es ideal para valores fijos, mientras que if maneja condiciones complejas.
  • Prevención de errores: Utiliza break, verificación de tipos y default para evitar fallos.
  • Técnicas avanzadas: Emplea anidamiento, mapeo y procesamiento dinámico para un diseño flexible.

2. Consejos para aplicaciones futuras

1. Optimizar lógica condicional compleja

Puedes manejar condiciones dinámicas combinando múltiples expresiones y funciones.

2. Implementar procesamiento dinámico con mapeo

Usa objetos o mapas para una gestión de datos eficiente y escalable.

const actions = {
  start: () => console.log("システムを起動します。"),
  stop: () => console.log("システムを停止します。"),
  restart: () => console.log("システムを再起動します。"),
};

let command = "restart";
(actions[command] || (() => console.log("無効なコマンドです。")))();

3. Aplicarlo a sistemas de gestión de estado

Puedes usar switch en el desarrollo de aplicaciones con bibliotecas de gestión de estado como Redux o Vuex.

Resumen

La sentencia switch es una herramienta simple pero poderosa en la lógica condicional de JavaScript. Al comprender tanto los conceptos básicos como el uso avanzado, puedes mejorar significativamente la legibilidad y mantenibilidad de tu código.
Utiliza este artículo como base para desarrollar aún más tus habilidades.

広告