Hay una gran diferencia entre usar "="(asignación) o usar "=="(comparación).
Cuando quieres VER si una variable vale algo concreto hay que usar la comparación.
Pero si lo que quieres es ASIGNAR un valor a una variable pues entonces usas la asignación. Por ejemplo, para que veas las dos cosas juntas.
Ahí lo tienes. Compruebas que <x> vale 0 y de ser así, le asignas el valor de 1, entonces ahora <x> vale 1.
Si en un código haces:
La salida va a ser: "x vale = 0". Por qué?? Porque una asignación en un <if> se traduce como verdadera siempre. Entonces <x> empieza valiendo 1, llega al <if>, como es una asignación se hace, ahora <x> vale 0 y como una asignación siempre es cierta te muestra el valor de <x> que es 0.
En cambio si tienes:
Ese programa no muestra nada por pantalla. Ya que <x> empieza valiendo 1, comparas <x> con 0 y como no es igual no se ejecuta lo que hay dentro del <if>.
En resumen, si quieres hacer que una variable valga algo, usa un igual "=". Si quieres comprobar que una variable vale algo, usa dos iguales "==". Suerte.
Cuando quieres VER si una variable vale algo concreto hay que usar la comparación.
Código (cpp) [Seleccionar]
if(x == 0)
cout << "x vale 0";
Pero si lo que quieres es ASIGNAR un valor a una variable pues entonces usas la asignación. Por ejemplo, para que veas las dos cosas juntas.
Código (cpp) [Seleccionar]
if(x == 0)
x = 1;
Ahí lo tienes. Compruebas que <x> vale 0 y de ser así, le asignas el valor de 1, entonces ahora <x> vale 1.
Si en un código haces:
Código (cpp) [Seleccionar]
int x = 1;
if(x = 0)
cout << "x vale = " << x;
La salida va a ser: "x vale = 0". Por qué?? Porque una asignación en un <if> se traduce como verdadera siempre. Entonces <x> empieza valiendo 1, llega al <if>, como es una asignación se hace, ahora <x> vale 0 y como una asignación siempre es cierta te muestra el valor de <x> que es 0.
En cambio si tienes:
Código (cpp) [Seleccionar]
int x = 1;
if(x == 0)
cout << "x vale = " << x;
Ese programa no muestra nada por pantalla. Ya que <x> empieza valiendo 1, comparas <x> con 0 y como no es igual no se ejecuta lo que hay dentro del <if>.
En resumen, si quieres hacer que una variable valga algo, usa un igual "=". Si quieres comprobar que una variable vale algo, usa dos iguales "==". Suerte.