elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Que significa un solo = en un if?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Que significa un solo = en un if?  (Leído 2,493 veces)
palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Que significa un solo = en un if?
« en: 18 Febrero 2017, 00:19 am »

Hola

Tengo este codigo que tengo que analizar:


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. int a;
  7. scanf("%d",&a);
  8. if(a=0)
  9. {
  10.    printf("Verdadero");
  11. }
  12. else
  13. {
  14.    printf("Falso");
  15. }
  16.  
  17.  
  18.    return 0;
  19. }
  20.  

No entiendo que significa que el if tenga un solo igual en vez de 2.
Osea se que evidentemente no es una comparacion pero nose que hace para que siempre el programa me tome falso.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Que significa un solo = en un if?
« Respuesta #1 en: 18 Febrero 2017, 00:28 am »

puede ser que está mal hecho, eso siempre será falso...

un solo igual en un if chequea si lo asignado fue true o no

es decir

Código
  1. if(a=1){
  2.  prinf("esto siempre siempre será cierto");
  3. }else{
  4.  
  5. }
  6.  
  7. if(a=0){
  8.  
  9. }else{
  10.  prinf("esto siempre siempre será falso");
  11. }


« Última modificación: 18 Febrero 2017, 00:39 am por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Que significa un solo = en un if?
« Respuesta #2 en: 18 Febrero 2017, 00:36 am »

Un único igual es una asignación y devuelve el propio valor de la asignación si mal no recuero. Como en tu caso este valor es 0, para c es como si tuvieses un false en el if (para C cualquier valor distinto de 0 es true y 0 es false).
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Que significa un solo = en un if?
« Respuesta #3 en: 18 Febrero 2017, 06:27 am »

Osea se que evidentemente no es una comparacion pero nose que hace para que siempre el programa me tome falso.

Se evalúa el valor de a después de hacer la asignación, la condición será verdadera siempre y cuando a no sea 0.
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
fflush

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Que significa un solo = en un if?
« Respuesta #4 en: 18 Febrero 2017, 10:31 am »

Hola,
 
 = Asignacion
 == Comparacion

Por ejemplo:
                        if ( C = 10)  // estas asignando el numero 10 a la variable C

                        if ( C == 10) // estas comparando si el contenido de la variable C es igual a 10
En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Que significa un solo = en un if?
« Respuesta #5 en: 19 Febrero 2017, 03:07 am »

Código
  1. if(a=0)
  2.  

En una expresión condicional, utilizar un solo =, es simplemente un error. Porque? porque no debe usarse una asignación en un condicional (como un if o un switch), ya que ese tipo de expresiones son para verificar si una expresión es verdadera (true) o falsa (false).
En línea


engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Que significa un solo = en un if?
« Respuesta #6 en: 19 Febrero 2017, 03:49 am »

Hola,
 
 = Asignacion
 == Comparacion

Por ejemplo:
                        if ( C = 10)  // estas asignando el numero 10 a la variable C

                        if ( C == 10) // estas comparando si el contenido de la variable C es igual a 10

eso el usuario parece saberlo... el asunto es que hace el if, no el "="


Código
  1. if(a=0)
  2.  

En una expresión condicional, utilizar un solo =, es simplemente un error. Porque? porque no debe usarse una asignación en un condicional (como un if o un switch), ya que ese tipo de expresiones son para verificar si una expresión es verdadera (true) o falsa (false).

error, esto es usado con cierta frecuencia ya que te permite ahorrarte algo de codigo

esto te permite evaluar "a" al mismo tiempo que le asignas valor
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
mi reproductor solo permite solo lee los cd que tienen formato cvcd y kvcd
Multimedia
lisker 1 2,959 Último mensaje 24 Noviembre 2004, 10:47 am
por Songoku
El navegador solo carga la pagina de inicio....pero solo google!! « 1 2 »
Dudas Generales
Danyor 11 14,579 Último mensaje 12 Octubre 2010, 18:32 pm
por jesusarturoes
Solo un perfeccionista resolverá este test sin cometer un solo fallo
Noticias
wolfbcn 0 1,473 Último mensaje 20 Noviembre 2016, 01:56 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines