Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda con "?" en c++

Estas en el tema de Duda con "?" en c++ en el foro de C/C++ en Foros del Web. Hola, hace poco estaba revisando unos codigos que encontre por internet, en c++, hasta que llegue a esta linea Código: cout<< posiciones_en_columna[(j)-1] == i ? ...
  #1 (permalink)  
Antiguo 16/02/2008, 17:12
Avatar de TheJez  
Fecha de Ingreso: agosto-2004
Ubicación: México - Distrito Federal
Mensajes: 176
Antigüedad: 19 años, 9 meses
Puntos: 0
Duda con "?" en c++

Hola, hace poco estaba revisando unos codigos que encontre por internet, en c++, hasta que llegue a esta linea

Código:
  cout<< posiciones_en_columna[(j)-1] == i ? 'R' : '0';
Mi pregunta, es que significa el "?" y los ":" en c++ y java (tambien funciona en java) pero no tengo ni la menor idea de que hagan, es un programa que en un arreglo pone R o 0 segun ciertos criterios, pero eso no kreo ke sea necesario...
__________________
"Knowledge is power..."
"Conocimiento es poder"
TheJez^
  #2 (permalink)  
Antiguo 16/02/2008, 20:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Duda con "?" en c++

Si la expresión que de delante del símbolo "?" devuelve 1, ejecutará la expresión que hay delante de los 2 puntos (:), en otro caso ejecuta la expresión que se encuentra detrás de los 2 puntos.

saludos
  #3 (permalink)  
Antiguo 19/02/2008, 12:58
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Duda con "?" en c++

El operador "?" funciona como una simplificación del "if" en casos sencillos como ese, si quisieras escribirlo "expandido" quedaría:

Código:
if(posiciones_en_columna[(j)-1] == i)
   cout << 'R';
else 
   cout << '0';
Es como si estuvieras haciendo una pregunta "posiciones_en_columna[(j)-1] es igual a i ?" en caso afirmativo retorna 'R', de lo contrario '0'.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #4 (permalink)  
Antiguo 13/03/2008, 22:45
Avatar de paelams  
Fecha de Ingreso: marzo-2008
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Duda con "?" en c++

Los simbolos ? : es la notacion if else escrita de otra manera aunque con esta notacion puede ser mas simplificada y aveces conveniente por ejemplo:

mayor=x>y? x : y;
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.