Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Cambiar switch por if/else o do/while

9 de febrero de 2015

Buenos días, tengo el siguiente problema estoy haciendo un ejercicio en el que tengo que generar unas gráficas de Circutor Power Studio, el problema es el elegir la variable que escoge del servidor ya que en el ejercicio se usa un switch pero yo suelo utilizar if o do/while. Mi pregunta es: ¿Cómo cambiar este switch por otro condicional?

switch (comboBox.getSelectedIndex()) {
    case 0:
        obj = "VI1";
        humanName = (String) comboBox.getSelectedItem();
        break;
    case 1:
        obj = "VI2";
        humanName = (String) comboBox.getSelectedItem();
        break;
}

Respuestas

#1

Transformar un switch en una serie de if/else suele ser muy sencillo prácticamente en cualquier lenguaje de programación. En tu caso, simplemente tendrías que utilizar lo siguiente:

if (comboBox.getSelectedIndex() == 0) {
    obj = "VI1";
    humanName = (String) comboBox.getSelectedItem();
} else if (comboBox.getSelectedIndex() == 1)
    obj = "VI2";
    humanName = (String) comboBox.getSelectedItem();
}

Como puedes ver, este código basado en if/else es un poco más "sucio" que el anterior. Además, es un poco menos eficiente, ya que, en algunos casos, el valor comboBox.getSelectedIndex() se obtiene varias veces en vez de una única vez como en el switch.

@javiereguiluz

9 febrero 2015, 10:16
#2

Gracias por responder, funciona perfectamente, el problema es que no sabía como usar el getSelectedIndex, de nuevo gracias por la aclaración!!

@tangooShiny

9 febrero 2015, 12:14