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

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

pq imprimi true e não false?

Isso imprime false e não true.

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);

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…

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

Não são boolean?

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

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

[code]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);

}

}[/code]

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);

é a pegadinha do malandro? rsrsrs

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)

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

Aqui também.

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);

        
    }

}

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 :

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

[/code]

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.

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

[quote=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[/quote]

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

(sorry, não resisti)

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.

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

abraço,
AS