Duda && en sentencia while

Iniciado por Dem0ny, 11 Noviembre 2008, 19:05 PM

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

Dem0ny

Veamos, al grano. Al hacer un programa y usar while, la condición que posee este, puede llevar 3 subcondiciones?

es decir

a>x, b<x  y z=0 por ej.

En el caso de ser posible como sería?

while (a>x && b<x && z==0){

while (a>x & b<x & z==0){

while (a>x && b<x) && (z==0)){


Y mil cosas mas se me ocurren, pero todo mal, alguien puede darme una orientación, en realidad eske toy haciendo a lo bruto, porke lo unico que quiero es verificar los numeros que hay entre a y b y que una operación almacenada en la variable z sea = 0. Aunke se os ocurra otra forma de hacerlo y me lo digais contestarme si con && se pueden usar varias condificiones en la misma sentencia.

Gracias de antemano.!

Casidiablo

Lo que recibe el while es un simple valor booleano, por lo que puedes anidar cuantas condiciones quieras, siempre y cuando todo junto retorne TRUE o False.

Un saludo!

Dem0ny

Entonces porque me da error, es un fallo de sintaxis o que? :s

Nakp

Ojo por ojo, y el mundo acabará ciego.

Dem0ny

Vale, sorry, nada que ver con while, me dice que el operador ">" no se puede aplicar a boolean, int, while expresión... y tal.

Pero no lo comprendo...  :-\ si ahi el comparador ... nose...

-Ramc-

Cita de: ~AbbadoN~ en 11 Noviembre 2008, 20:58 PM
Vale, sorry, nada que ver con while, me dice que el operador ">" no se puede aplicar a boolean, int, while expresión... y tal.

Pero no lo comprendo...  :-\ si ahi el comparador ... nose...
De que tipo son las variables y cual es el error exacto??

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

Nakp

Ojo por ojo, y el mundo acabará ciego.

juancho77

Código (java) [Seleccionar]
while (a>x && b<x && z==0) { }
es incorrecto ya que todas esas condiciones deben estar bien englobadas en sus parentesis. Te dice que el relacional ">" no puede ser aplicado a boolean, int porque al operar segun las reglas de precedencia en java, esa oracion seria equivalente (tal y como esta escrita) a :
Código (java) [Seleccionar]
while( a>(x&&b) ...
La forma correcta de asegurarse que todo este bien, aun sin entender las reglas de precedencia, es aplicar parentesis:
Código (java) [Seleccionar]
while (  (a>x) && (b<x) && (z==0)) {}


Saludos.

Dem0ny


sapito169

una recomendacion es que pongas simpre todos los parentesis necesarios sin execpcion asi te aseguras que nunca buelvas a tener ese problema