¿Error por falta de corchetes?

Iniciado por fafafa01, 11 Enero 2017, 00:39 AM

0 Miembros y 1 Visitante están viendo este tema.

fafafa01

Buenas estoy intentando no usar corchetes en el código pero no funciona como quiero, creo que es porque no entiendo bien cuando están explictos (cuando no son necesarios)


while(expresion)
   if(expresion)
       if (expresion)
           while(expresion)
               ;  //solo hace lo de adentro del while
       else
           while(expresion)
               ;  //solo hace lo de adentro del while
   else{
       if(expresion)
           expresión; //solo una linea
       else if(expresion)
           expresion; //solo una linea
       else if(expresion)
           expresion; //solo una linea
       else if(expresion)
           expresion; //solo una linea
       if (expresion) //nuevo if
           expresion; //solo una
   }
if (expresion) //este if no estaria adentro del primer while
   expresion; //solo una linea
else
   expresion; //solo una linea


segun lo que yo entiendo por los paréntesis explícitos, todas las sangrías que he dejado son correctas, pero el código no hace lo que pido.

engel lex

en cual falla? (no es muy buena practica usarlos así incluso lo ideal de usarlos sin parentesis es cuando se usan "en linea" que colocas la expresión justo al lado)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

theluigy13etv

#2
Como te mencionó engel lex, no es una buena práctica evitar el uso de llaves.
Personalmente prefiero usar siempre las llaves en todas las estructuras de control de decisión y de bucles (if-else, while, switch, ..)

Código (cpp) [Seleccionar]

if (condición) {
   // ....
} else {
   // ...
}



Código (cpp) [Seleccionar]

if (condición) {
   // ....
} else if (condición) {
   // ...
} else if (condición) {
   // ...
} else if (condición) {
   // ...
} else {
   // ...
}


Código (cpp) [Seleccionar]

while (expresion) {
   if (expresion) {
       if (expresion) {
           while (expresion) {
               ;  //solo hace lo de adentro del while
           }
} else {
           while(expresion) {
               ;  //solo hace lo de adentro del while
   }
}
   } else {
       if (expresion) {
           expresión; //solo una linea
} else if (expresion) {
           expresion; //solo una linea
} else if (expresion) {
           expresion; //solo una linea
} else if (expresion) {
           expresion; //solo una linea
}

       if (expresion) {//nuevo if
           expresion;
}
   }
}

if (expresion) { //este if no estaria adentro del primer while
   expresion; //solo una linea
} else {
   expresion; //solo una linea
}





MAFUS

Birrando esa llave el penúltimo if se ejecutaría fuera del primer while.