Java - Ayuda "Que kiere decir esta funcion"

 
Vista:

Ayuda "Que kiere decir esta funcion"

Publicado por carlod (2 intervenciones) el 24/07/2006 06:23:41
Por favor detallame que significa o ke kiere decir este codigp


if ( ( ( z < 0 ) ? z * -1 : z ) % 2 == 1 )

Te lo voy a agradecer mucho........ es para mi examen.

Saludos a todos de Carlos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda

Publicado por Miguel Espinoza (12 intervenciones) el 24/07/2006 09:16:54
Hola!

no estoy seguro de si esta sintaxis es valida en Java pero de todas formas te puedo recomendar que la separes en sus partes, de esta forma tenemos:

if ( ( ( z < 0 ) ? z * -1 : z ) % 2 == 1 )

=

if (
( ( z < 0 ) ? z * -1 : z ) % 2 == 1
)

=

if (
(
( z < 0 ) ? z * -1 : z )
% 2 == 1
)

es decir:

IF [ z < 0 ] { z * -1 } ELSE { Z }

Ahi tenemos entonces un valor para z (sea z o (z*-1))

entonces: IF (z % 2 == 1) { hacer algo, pero eso no dice que }

el % (modulo) es "lo que sobra de una division", es decir 9%7 == 2, porque si divides 9 entre 7 te sobran 2.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda

Publicado por carlos (2 intervenciones) el 24/07/2006 18:14:09
Mil garcias amigo......... no me saco por completo de dudas pero si me quedo un poco mas claro el panorama de lo que kiere decir, la verdad es para mi examen de este miercoles y el programa va relacionado con los numeros pares e impares
pero de todos modos te muestro el programa que tengo que entregar:

import java.util.*;

public class examen
{
public class void main ( String [ ] args)
{
Scanner in = new Scanner ( System.in);

System.out.println( " Introduce un entero: ");
int z = in.nextInt( );

if ( ( ( z < 0) ? z * -1 : z ) % 2 == 1)

System.out.println ( " El numero es + z + Impar")

else

System.out.println ( " El numero es + z + Par")

}
}

Como te comento; las primers lineas si las entiendo ejemplo:
el IMPORT JAVA....... los PUBLIC CLASS y VOID MAIN....... el SCANNER IN = .......
y luego lo de introducir el numero tambien.

Mi problema esta en el signo de ( ? ) y los ( : ) en el if.
. ¿QUE SIGNIFICAN?

lo ultimo si lo entiendo en el IFque es el modulo ( % ) como me lo explicas, tambien la multiplicacion de z * -1 pero ese signo de interrogacio ( ? ) y despues los 2 puntos ( : ) y la ( z ) al final.

Yo este programa lo compilo y lo ejecuto en un programa que se llama TEXT PAD
me imagino que si lo has de conocer, aunque tuve que instalar el J2SDK de JAVA o la Maquina Virtual de JAVA para que funcione.

Si me respondes te lo volvere a agradecer de todo corazon.

Aun si no...... Mil gracias por la ayuda.

Que tengas buen dia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda

Publicado por seba (1 intervención) el 25/07/2006 04:19:49
el signo significa if osea (z<0)?, es lo mismo q:
if (z<0)
{
.....
}
y los dos puntos no me acuredo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda

Publicado por Marco (57 intervenciones) el 25/07/2006 13:17:34
primero la expresion (z<0) es lo mismo que if(z<0), evalua esta expresion y de acuerdo a la resultado de evaluar la expresion se hace lo que sigue despues del signo ":" lo que esta delante de los signos se ejecuta si (z<0) es verdadero; lo que esta despues del ":" se ejecuta si (z<0) es falso o sea esta linea de codigo verifica si el numero introducido es menor h cero o sea un negativo: si el numero es negativo entonces (z<0) dara TRUE y ejecutara la primera parte de la expresion
o sea lo multiplicara por -1 par converirlo en positivo; por el otro lado si el numero es positivo asignara a z el miso valor de z; luego con la expresión % sacara el modulo del numero introducido entre 2 si es igual a 1 el numero es impar, caso contrario el numero sera par

import java.util.*;
public class examen
{
public static void main( String args[])
{
Scanner in = new Scanner ( System.in);
System.out.println( " Introduce un entero: ");
int z = in.nextInt( );

//esto se evalua primero
||
/----\
if ( ( ( z < 0) ? z * -1 : z ) % 2 == 1) //luego saca el modulo de 2 y lo compara con 1
\-----/ \/
|| ||
//TRUE hace esto FALSE hace esto


System.out.println ( " El numero es "+ z +" Impar");
else
System.out.println ( " El numero es" + z +" Par");
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda

Publicado por Juan (131 intervenciones) el 26/07/2006 21:44:34
Eso se llama if ternario
if (condicion) ? CasoVerdad : CasoFalso
Son solo componentes sintacticos
(z<0) ?-1*z : z
se leeria como si z es menor que cero, retornar menos z, sino retornar z.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar