Que significa un && entre dos variables en C?

Iniciado por palacio29, 26 Noviembre 2016, 01:48 AM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

Hola

Tengo este programa y no logro entender que es lo que hace un doble uppersand en ambas variables.
Les paso el codigo

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


int main()
{

int n1=4;
int n2=5;

if(n1&&n2)
{
    printf("Entre");
}
else
{
    printf("\nNo entre");
}


return 0;
}


Asi sea poniendo los mismos valores o distintos, siempre pone "Entre", no logro entender que significa if (var1&&var2)

MRx86

#1
Hola, ese "&&" es un AND logico, y ya que todo numero mayor a cero se toma como un valor verdadero, por eso te pone "Entre". Ponle a una de las variables un valor cero para que veas como
dice "No Entre".

Si se hace un pseudo codigo seria algo asi.

Si (verdadero Y verdadero)
Imprime "entre"

Sino
Inprime "no entre"

Vas entendiendo? Lee "the C programming language" de dennis ritchie (o su version en español), es una buena introduccion al lenguaje.
"Tengo una pregunta que a veces me tortura: ¿Estoy loco
yo, o los locos son los demas?"
- Albert Einstein

palacio29

Cita de: MRx86 en 26 Noviembre 2016, 01:57 AM
Hola, ese "&&" es un AND logico, y ya que todo numero mayor a cero se toma como un valor verdadero, por eso te pone "Entre". Ponle a una de las variables un valor cero para que veas como dice "No Entre".

Muchas gracias, pero hay algo que no entiendo, si yo a una variable le pongo un valor negativo pone que entra igualmente.

Borito30

cual es la condicion, la condiciones es que haya dos enteros no pones ninguna restriccion luego te entrara ya que  no importa el valor de estos dos enteros ahora si le pones una condicion como que uno o ambos tengan un determinado valor puede que no entre
Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)

MRx86

Es que un valor negativo no es un valor falso, solo cero, esta linea de tu codigo:

int n1=4;

Cambiala por:

int n1=0;

Y vez que pasa..

Saludos
"Tengo una pregunta que a veces me tortura: ¿Estoy loco
yo, o los locos son los demas?"
- Albert Einstein

palacio29

Cita de: MRx86 en 26 Noviembre 2016, 02:12 AM
Es que un valor negativo no es un valor falso, solo cero, esta linea de tu codigo:

int n1=4;

Cambiala por:

int n1=0;

Y vez que pasa..

Saludos

Muchas gracias!,ahora si entendi, Tenes idea donde puedo leer bien esto?..Porque  estoy haciendo finales de una materia de informatica y suelen aparecer este tipo de cosas raras y por mas que lea operadores logicos, no veo donde explican estas cosas por ningun lado.

MAFUS

Esto es básico de C: todo valor diferente a 0 se considera cierto para operadores e instrucciones lógicas. Todo valor igual a 0 se considera falso para operadores e instrucciones lógicas.

MRx86

Cita de: palacio29 en 26 Noviembre 2016, 03:47 AM
Muchas gracias!,ahora si entendi, Tenes idea donde puedo leer bien esto?..Porque  estoy haciendo finales de una materia de informatica y suelen aparecer este tipo de cosas raras y por mas que lea operadores logicos, no veo donde explican estas cosas por ningun lado.

Aqui tienes el libro de ritchie:

http://www.tecnica1lomas.com.ar/tutoriales/lenguaje_C.pdf

Recuerda que en google puedes encontrar bastante informacion de C, ya que es un lenguaje algo popular.

Saludos!
"Tengo una pregunta que a veces me tortura: ¿Estoy loco
yo, o los locos son los demas?"
- Albert Einstein