Autor
|
Tema: Que significa un solo = en un if? (Leído 2,493 veces)
|
palacio29
Desconectado
Mensajes: 103
|
Hola Tengo este codigo que tengo que analizar: #include <stdio.h> #include <stdlib.h> int main() { int a; if(a=0) { } else { } return 0; }
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
|
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 if(a=1){ prinf("esto siempre siempre será cierto"); }else{ } if(a=0){ }else{ prinf("esto siempre siempre será falso"); }
|
|
« Ú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
Mensajes: 61
|
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
Mensajes: 400
|
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
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
fflush
Desconectado
Mensajes: 5
|
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
Mensajes: 3.034
|
if(a=0)
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
|
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 "=" if(a=0)
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.
|
|
|
|
|