Programación General > C/C++
Re: Estilo de programación: sentencia break.
gmantil:
Las sentencias TextTextbreakTextText y TextTextcontinueTextText se encuentran definidas en el C estandar por lo que su utilización es permitida.
En lo personal, considero que estas sentencias son heredadas de la tendencia de programación anterior a la programación estructurada. Yo en mis programas evito colocar sentencias que rompan el flujo normal del programa. Considero que la programación estructurada y modular será mas clara y manejable mientras siga correctamente una secuencialidad.
Yo a mis alumnos los encamino a no utilizar estas sentencias: goto, label, break (salvo en los switch) y continue. Pero eso es mas una cultura personal.
gmantil
gothmog:
hombre, no es obligatorio pero entonces pierde la esencia de la finalidad de un switch, q es elegir entre varias opciones. Si al final se ejecutan todas, no sirve para nada. Lo que no entiendo es como no se modifico esto en c++ igual que en otros lenguajes, en los cuales solo identifica una rama case y el resto las pasa por alto, sin necesidad de poner el break.
Supongo que alguna razon importante habra, pq en java tp se modifico la sintaxis switch..case pero la verdad, sin el break, no le veo sentido a esta sentencia. :think:
chuidiang:
Hay veces que el break dentro de un bucle es necesario para no complicar demasiado el codigo.
Imaginad lo siguiente
bucle (condicion del bucle)
{
"codigo 1" que se ejecuta
if (tengo que salir del bucle)
break;
"codigo 2" que no se ejecuta
}
En este caso no puedo ponerlo en la condicion, necesito que se ejecute "codigo 1", pero si salgo, "codigo 2" no se ejecuta. Ademas, la condicion de salida puede depender del resultado de "codigo 1"
Se pueden hacer cosas como esta
if (tengo que salir)
{
fijo condicion de salida del bucle
}
else
{
"codigo 2"
}
pero lo veo mas liado.
Suponed tambien un bucle for para buscar algo y quiero saber el indice en el que se encuentra
for (i=0; i<n; i++)
{
if (encontrado)
break;
}
if (i==n)
no se ha encontrado
else
Se ha encontrado en posicion i
Si no ponemos el break, hay que declarar otra variable, cuando lo encontremos guardar la posicion y luego hacer i=n. Es algo mas liado. Tampoco me parece muy elegante tocar a pelo la i de un bucle for.
De todas formas un break no es un salto tan aleatorio como goto, que puede saltar desde cualquier lado a cualquier lado, asi que yo no veo mal utilizar break para abortar bucles.
Sed buenos.
Navegación
[*] Página Anterior
Ir a la versión completa