| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2007 17:24:20
|
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... =) |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2007 17:46:54
|
Yky Mattshawn
Virtual Machine Man
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2007 17:54:08
|
_Renatu
Virtual Machine Man
![[Avatar]](/images/avatar/20885c72ca35d75619d6a378edea9f76.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/01/2007 09:53:11
|
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/
|
|
|
 |
|
|