Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mort en 31 Enero 2015, 21:46 pm



Título: Operador condicional ?: (Duda)
Publicado por: mort en 31 Enero 2015, 21:46 pm
Mi duda es la siguiente,  ¿porque el resultado de la operación entre contador % 2 es igual 1 se imprime "****" y si es 0 "++++++"?

¿Como se sabe que es lo que se va a imprimir?
¿ Cual es la condición si el resultado es 1 o 0?

no se si me explique, aquí esta el programa:

Código
  1. [/#include <stdio.h>
  2.  
  3. int main ()
  4. {
  5. int contador = 1;
  6.  
  7.    while (contador <= 10){
  8. printf("%s\n", contador % 2 ? "****" : "++++++");
  9. ++contador;
  10. }
  11.  
  12. system ("pause");
  13.  
  14. return 0;
  15. }
  16. ]
  17.  


Título: Re: Operador condicional ?: (Duda)
Publicado por: engel lex en 31 Enero 2015, 21:56 pm
por resumir
Código
  1. printf("%s\n", contador % 2 ? "****" : "++++++");

es igual a
Código
  1. if(contador%2){//si es diferente de 0, entonces ==true
  2.  printf("%s\n", "****");
  3. }else{
  4.  printf("%s\n", "++++++");
  5. }


ese operador puede ser visto como
Código:
algo ? if(true):if(false)