Duvida em "condição"  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
du123
JavaChild

Membro desde: 27/11/2006 11:19:22
Mensagens: 127
Offline

Porque esse código compila e funciona!? O que ele representa?

if((b1=true) && b2=false)
{
blabla
}

sendo b1 e b2 dois boolean's... b1 = true e b2 = false

obrigado

Keep studying, little grasshopper... =)
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

Ele compila porque a sintaxe está correta (e outros adendos desnecessários à citação). Ele executa pq não ocorre nada de errado nele, nem na JVM.

Tecnicamente ele não representa nada a nós que estamos lendo um "blablabla" no lugar do bloco de execução, mas... acredito que as variáveis b1 e b2, em algum momento anterior do código devem estar sofrendo alterações por outras ações do código, o que faz com que o bloco "blablabla" execute somente se determinadas condições foram estabelecidas anteriormente no código.

Generalizando, da maneira que está o código é inútil, a questão se encontra "onde" e "porquê" ele está sendo usado.

--- EDITED ---
Eu li incorretamente o código acima, e então expressei uma idéia errônea neste meu post. O usuário postante abaixo está correto.


Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
_Renatu
Virtual Machine Man
[Avatar]

Membro desde: 04/08/2004 19:47:38
Mensagens: 597
Offline

Então, ele compila e executa

Mas o conteudo do if nao é executado.

Quando você utiliza = você está atribuindo um valor à variavel.

Portanto você está atribuindo um valor true para b1 e false para b2, e comparando eles com AND. Portanto TRUE AND FALSE = FALSE, e o código nao procede dentro do if.

Se fosse utilizado o operador ==, estaria comparando b1 com valor true, e b2 com valor false.

if ( (b1==true) && b2==false)

Nesta condição, o conteúdo do if seria executado caso a variavel b1 fosse true E a variavel b2 fosse false.

Renato Freitas
Compartihe Arquivos do seu curso ou faculdade no ebaH
Patentes Brasileiras
Patentes de Venezuela
Patentes de Chile
Patentes de Mexico
Patentes de Colombia
Patentes de Argentina
Patentes Online
http://www.twitter.com/renatoebah
[WWW] [ICQ]
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

du123 wrote:Porque esse código compila e funciona!? O que ele representa?

if((b1=true) && b2=false)
{
blabla
}

sendo b1 e b2 dois boolean's... b1 = true e b2 = false

obrigado


compila pelo seguitne vc nao tá comparando se b1 == true vc ta dizendo que b1 = true e b2 = false(que b1 recebe true e b3 recebe false) entao isso é valido por isso que compila e a instrução {} eh executada..

cuidado com os operadores = e == qdo usar boolean.. as vezes o cara se passa..
so uma dica.. qdo for postar algo e tiver uma sintaxe poe entre Code..

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team