Indique cuál seria la salida que se obtendría ejecutando el siguiente trozo de código en c++:
for (int i=1; i++<10; i++) { ( (i == 5)? cout<< "Cinco": cout << i << "");}
a) 0 2 4 6 8 b) 1 3 Cinco 7 9
c) 2 4 6 8 10 d) 1 3 5 7 9
Como comprenderás el foro no está para que te hagamos la tarea.
Te recomiendo que comentes lo que entiendes tú de ese código y te podremos ayudar a entenderlo y resolverlo.
La verdad que es medio raro eso, se la respuesta pero no se como es que el signo ? funciona en ese fragmento de codigo alguien sabe?
Por cierto una pista de la respuesta son numeros del mismo tipo... ;-)
Cita de: Beginner Web en 29 Noviembre 2018, 00:57 AM
La verdad que es medio raro eso, se la respuesta pero no se como es que el signo ?
Es el Operador Ternario, es basicamente un mini if
char C = 'A';
printf("%s\n",(C == 'A')? "Verdadero": "Falso");
Se utiliza para realizar ciertas evaluaciones rapidamente.
De manera que te devuelve el primer valor el que esta antes del ":" si la evaluacion fue verdadera, encaso contrareo te devuelve lo que esta despues del ":"
Otro ejemplo seria:
char C = 'A',otro;
otro = (C == 'A') ? 'q' : 'r' ;
Saludos
Aunque un código así escrito compile, no es el más leible.
Una manera no tan obfuscada de escribirlo podría ser:
cout << ( (i == 5) ? "Cinco" : i ) << " ";
Cita de: AlbertoBSD en 29 Noviembre 2018, 01:05 AM
Es el Operador Ternario, es basicamente un mini if
char C = 'A';
printf("%s\n",(C == 'A')? "Verdadero": "Falso");
Se utiliza para realizar ciertas evaluaciones rapidamente.
De manera que te devuelve el primer valor el que esta antes del ":" si la evaluacion fue verdadera, encaso contrareo te devuelve lo que esta despues del ":"
Otro ejemplo seria:
char C = 'A',otro;
otro = (C == 'A') ? 'q' : 'r' ;
Saludos
Ahh claro es por esto (int i=1; i++<10; i++) que i nunca va a valer 5 por lo tanto nunca se mostrara "Cinco" por pantalla, solamente el valor de i ya que i no cumple con esa condicion, gracias Alberto, ya lo entendí :laugh:
Muchas gracias a todos, me parecía muy complejo y no llegaba a entenderlo. ;-)