Simples - Problema pra entender Java com lógica básica de true e false

15 respostas
A

x = false; y = true; System.out.print(x && y);

pq imprimi true e não false?

15 Respostas

pmlm

Isso imprime false e não true.

A

Oi pmlm, obrigado mesmo por ajudar… mas não dá false, veja:

x = false; y = true; System.out.print(x && y);

neste caso abaixo dá false:

boolean x = false; boolean y = true; System.out.print(x && y);

AndreMendes

Minha resposta pode até parecer meio obvia, mas está claro que se você fizer:

z = x && y;

Vai ter um retorno falso, pois && é uma “função” que retorna um valor boolean. Agora não estou entendendo o porque do retorno ser falso…

pmlm

O que são x e y no primeiro caso então?

Não são boolean?

A

hehehe... caramba pensei q isso fosse mais fácil... hehehe... legal galera as explicações... veja: :D

tou estudando pra certificação via bloco de notas, no bloco de notas eu jogo

public class TestarOperadoresLogicasETiposBooleanos{
	/*public static void main (String[] args){
		int a = 1; 
		int b = 2;
		//System.out.print(!(a == b));*/

	

		x = false;
		y = true;
		System.out.print(x && y);
	
	}
}

imprimi true e não dá erro de compilação...

já no eclipse dá erro de compilação, faz com o q eu mude pra:

mas dá false

boolean x = false;    
   boolean y = true;    
   System.out.print(x && y);
guilhermevh

é a pegadinha do malandro? rsrsrs

pmlm

O primeiro caso dá erro de compilação de certeza.

O que pode estar a acontecer é não teres compilado e estares ainda a executar o código comentado de uma compilação anterior (e esse sim, imprime true)

Felagund

ele só imprime o valor de x

a operação fica para depois, ele avalia como uma operação matematica 2+2+3, resulta em 4+3 e depois 7, o q ele faz e avaliar o x dentro do print e imprime seu valor.
se vc colocar assim

System.out.println((x && y));

vai imprimir certo.

Pelo menos foi a unica logica que pensei pra isso imprimir so o valor de x toda a vez

lelodois

Aqui também.

FelipeGalli

Não vi problema nenhum,

na tabela da verdade isso é false i é o que imprimi

public class Main {
    private static boolean x;
    private static boolean y;

    
    public static void main(String[] args) {

        x = false;
        y = true;  
        System.out.print(x && y);

        
    }

}
Hildebrando_Pedroni

O primeiro caso vai dar erro de compilação porque os tipos não estão declarados, pelo menos não no código postado. E a não ser que tenham sido declarados em outro
lugar, é compilation fail com certeza: Cannot find Symbol

x = false;
         y = true;
        
        System.out.println(y && x);

Agora, se vc fizer assim :

boolean x = false;
        boolean y = true;
        
        System.out.println(y && x);
        //ou
        System.out.println(x && y);

Isso vai dar false, no eclipse, no bloco de notas ou em qualquer outra linguagem de programação, porque false E qualquer outra coisa é sempre false.

V

Rapaz, lembrei das aulas de tabela verdade, como até nosso colega acima lembrou.

V e V = V
V e F = F
F e V = F
F e F = F

Só vai ser verdade (true) quando ambos forem true. O_o

pmlm

Felagund:
ele só imprime o valor de x

a operação fica para depois, ele avalia como uma operação matematica 2+2+3, resulta em 4+3 e depois 7, o q ele faz e avaliar o x dentro do print e imprime seu valor.
se vc colocar assim

System.out.println((x && y));

vai imprimir certo.

Pelo menos foi a unica logica que pensei pra isso imprimir so o valor de x toda a vez

WTF? Se calhar é melhor colocar mais ((())) para garantir que ele executa correctamente…

(sorry, não resisti)

E

Colocar mais parênteses para forçar a algo funcionar é mais ou menos parecido com aquela página Web que uma vez comentei - ela tinha um monte de

<strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>
<strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>
</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>
</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>

Isso vai para minha coleção.

A propósito, por que é que o pessoal não conhece a opção “Project -> Clean…” do Eclipse? Eliminaria uma boa parte dessas dúvidas bobocas.

A

oi gente… valeu mesmo pela ajuda pelo jeito me confundí… mas o pior é q tava assim no JavaRanch.com/game.jsp

abraço,
AS

Criado 18 de agosto de 2010
Ultima resposta 18 de ago. de 2010
Respostas 15
Participantes 10