Operador &

class amigo
{
public static void main(String[] args)

	{

	//Declarando variaveis

	int idade=1;
	boolean amigo=true;
	
	//Executando condições


	if(idade<18 & amigo==false)

		{
		System.out.println("Não pode entrar!");
		}
	else	
		{
		System.out.println("Pode entrar!");
		}
	}
	 }

Sou iniciante em java, fiz este codigo porem ele so me retorna “pode entrar” creio que seja algo com o operador “”"&""’…
Alguem pode me ajudar a solucionar?
Antecipadamente agradeco.

&&
 if(idade<18 && amigo==false) 

Tenta isso ae de cima, mas como amigo é igual a true, vai cair no else de qualquer forma

[quote=sene] if(idade<18 && amigo==false)

Tenta isso ae de cima, mas como amigo é igual a true, vai cair no else de qualquer forma[/quote]

Ou assim, já que amigo é do tipo boolean

[quote=sene] if(idade<18 && !amigo)

[quote=jrappelt]class amigo
{
public static void main(String[] args)

	{

	//Declarando variaveis

	int idade=1;
	boolean amigo=true;
	
	//Executando condições


	if(idade&lt;18 & amigo==false)

		{
		System.out.println(&quot;Não pode entrar!&quot;);
		}
	else	
		{
		System.out.println(&quot;Pode entrar!&quot;);
		}
	}
	 }

Sou iniciante em java, fiz este codigo porem ele so me retorna “pode entrar” creio que seja algo com o operador “”"&""’…
Alguem pode me ajudar a solucionar?
Antecipadamente agradeco.[/quote]

oi,

existe uma pequena diferença ente o & e o &&

quando você faz

as duas condições vão ser testadas, sempre, mesmo que a primeira seja falsa

quando você faz

se a primeira condição for falsa não vai ser testada a segunda

vale o mesmo para o | e o ||

Galera ja tentei de todas as formas mudando as variaveis de true pra false mudando a idade mas de qualquer forma esta caindo no else, não teria algo diferente não como chaves ou algo assim…??

Aguardo por reposta e obrigado pelas respondidas ate agora.

Abracos

posta o codigo completo

class amigo
{
public static void main(String[] args)

	{

	//Declarando variaveis

	int idade=21;
	boolean amigo=true;
	
	//Executando condições


	if(idade < 18 & amigo==false)

		{
		System.out.println("Não pode entrar!");
		}
	else	
		{
		System.out.println("Pode entrar!");
		}
	}

 }

Ta ai…

primeiro: coloque o seu codigo entre tags code

[code ] <- sem o espaço
[/code ]

Depois, amigo é true, e vc compara o mesmo com false. pq vc acha estranho cair no else?

if(idade < 18 & amigo==false)
if(21 < 18 & true==false)
if(FALSO & FALSO)
if(falso) { nao executa } else { executa }

Obrigado vou tentar aqui…
Valeu mesmo…

class amigo
	{	
		public static void main(String[] args)

		{

		//Declarando variaveis

		int idade=21;
		boolean amigo=true;
		
		//Executando condições


		if(idade < 18 && amigo==true)

			{
			System.out.println("Não pode entrar!");
			}
		else	
			{
			System.out.println("Pode entrar!");
			}
		}
	
	 }

Bom,

sua variável amigo esta recebendo o valor true, quando você escreve a condição que ela tem que passar você compara se ela é false, mas ela é verdadeira você esta dizendo o seguinte:

     variavel inteiro idade = 1;
     variavel booleana amigo = verdadeiro;
    
     SE ( idade < 18 ^ amigo IGUAL false)  // amigo é verdeiro, ele nunca vai ser falso porque a sua variavel esta como verdadeiro
          ESCREVA("Não pode entrar");
     SENÃO 
          ESCREVA("PODE ENTRAR");

E você pode ver que ele compara a IDADE depois ele compara o AMIGO.

IDADE MENOR QUE 18: V
AMIGO É FALSO: F

V ^ F = F

Agora minha pergunta capciosa é o seguinte, o que você realmente quer fazer com essa variavel amigo?

Você quer comparar o seu valor, você quer fazer alguma comparação com a idade?

Pergunta novamente, afinal de contas qual código é para analizar?

: :roll:

Galera ja foi resolvido o problema do codigo acima e me desculpem pela pessima organização…

Agora estou com outro problema…
de calculdar a fatorial de 1 a 10…ja tentei de varias formas mas nao entendo!!!

Vi uns exemplos so que nao entendi o que este operador “”"" *= “”"""" faz…
Podem me ajudar…

Antecipadamente agradeço…

Inte mais …

VICTOR respondendo a sua pergunta e que estou estudando por uma apostila CAELUM e tem esses exemplos, estou fazendo os mesmos .

Eu entendi que mesmo que for maior de 18 e amigo do dono nao entra…
posso estar enganado…

Abracos…

comece pelo basico : como se calcula fatorial?

Calcular fatorial e tranquilo na matematica ne…
5!=54321==120

O problema nao estou sabendo jogar isso pra calcular

fiz isso de comeco…

class fatorial{
	
	public static void main(String[] args)

		{
			
			

			for(int n=1, fat=1;n <=10;n++)

			{
				
				
				fat=n*(n-1); //o problema ta aqui ......não sei como fazer..

				{
				System.out.println (fat);
				}
			}
		}
	}   

Valeu consegui aqui…

class fatorial{
	
	public static void main(String[] args)

		{
			
			

			for(int n=1, fat=1;n <=10;n++)

			{
				
				
				fat=fat*n;

				{
				System.out.println (fat);
				}
			}
		}
	}   

O fat vai atualizando seu valor …hehehe…

Obrigado a todos.

[quote=jrappelt]Galera ja foi resolvido o problema do codigo acima e me desculpem pela pessima organização…

Agora estou com outro problema…
de calculdar a fatorial de 1 a 10…ja tentei de varias formas mas nao entendo!!!

Vi uns exemplos so que nao entendi o que este operador “”"" *= “”"""" faz…
Podem me ajudar…

Antecipadamente agradeço…

Inte mais …[/quote]

Este operado “”""""""""" *= “”""""""""""""" faz com que sua variavel receba ela mesmo multiplicada pelo que esta após o “=”.

EX:

int i = 3;

i *= 3 ////////////////// I ira valer ele mesmo multiplicado por 3, então sera 9 :slight_smile: entendeu?

abraçooo fuizzzzz

[quote=jrappelt]Valeu consegui aqui…

class fatorial{
	
	public static void main(String[] args)

		{
			
			

			for(int n=1, fat=1;n <=10;n++)

			{
				
				
				fat=fat*n;

				{
				System.out.println (fat);
				}
			}
		}
	}   

O fat vai atualizando seu valor …hehehe…

Obrigado a todos.[/quote]

Neste trecho:

fat=fat*n;

vc pode usar fat *= n;
que da na mesma :slight_smile: abraço