| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 10:41:45
|
Daniel Ilha
JavaBaby
Membro desde: 23/06/2006 11:42:08
Mensagens: 79
Localização: Porto Alegre
Offline
|
Prezados;]
Não consegui enteder a diferença de usar:
1) && ou &
2) || ou |
Agradeço desde já
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 10:46:16
|
Cabral
JavaTeenager
![[Avatar]](/images/avatar/8e443d6819ae22b2d64f75266f535b59.jpg)
Membro desde: 01/06/2005 09:10:59
Mensagens: 153
Localização: Arujá - SP
Offline
|
Olá,
o && voce compara as duas expressões:
exemplo
1 == 1 && 2 == 2 => só sera true se as duas condições forem verdadeiras.
o & é a mesma coisa mas ele compara bit a bit
com o || eu acredito que seja a mesma coisa:
1 ==1 || 2==2 > é true se uma das duas condições forem verdareiras.
Falou
Ricardo Cabral
|
** SCPN ** |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 10:47:58
|
Dieval Guizelini
Virtual Machine Man
![[Avatar]](/images/avatar/9fc92b9c69b711dcb880ccb743fc6f06.jpg)
Membro desde: 05/07/2006 14:39:44
Mensagens: 570
Localização: Curitiba - PR
Offline
|
Os operadores &&, || são lógicos, normalmente utilizados para avaliação de expressões lógicas.
Os operadores & e | são bit-wse, e operam com a lógica binária no nível de bits. Onde 0 equivale a falso e 1 a verdadeiro.
Exemplo:
0x55 & 0xf0 => 0x50.
Os operadores && e || atuam com o conceito de curto circuito.
Dependendo do resultado da primeira operação as segundas não são avaliadas. Exemplo:
true || ? == sempre true (não avalia o segundo operando).
false && ? == sempre false (não avalia o segundo operando).
fw
|
Sun Certified Java Programmer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 10:48:16
|
neohacker
Virtual Machine Man
![[Avatar]](/images/avatar/e5a419ed77a4e034849e1e1b68ba015e.jpg)
Membro desde: 30/10/2006 15:23:14
Mensagens: 576
Localização: Santo André
Offline
|
Um se chama "Short-Circuit" (ou algo bem parecido com isso) que quer dizer que se vc usa "&&" ele avalia a primeira expressão e se for falsa ele nem chega a analizar a segunda tendo em vista que será impossível resultar em um resultado verdadeiro, no outro modo pelo que vc imagina ele vai analizar sempre as 2 opções, por isso é costume utlizar "&&" e "||" porque digamos que economize "processamento".
Acho que é isso, não deixem de me corrigir se estiver equivocado.
Espero ter ajudado
|
http//www.tecnologiaims.blogspot.com
↑ Grab this Headline Animator http://www.imstechnology.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 10:50:54
|
vitorpatriarcha
Debugger
Membro desde: 11/04/2006 09:22:31
Mensagens: 71
Offline
|
&& -- if(op1 && op2){} op1 e op2 são verdadeiros, avalia condicionalmente op2.
|| -- if(op1 || op2){} op1 ou op2 é verdadeiro, avalia condicionalmente op2
& -- if(op1 & op2){} op1 e op2 são ambos verdadeiros, sempre avalia op1 e op2
| -- if(op1 | op2){} op1 ou op2 é verdadeiro, sempre avalia op1 e op2.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 10:53:16
|
JohnJohn
Debugger
![[Avatar]](/images/avatar/29babcee1a2bd1625d8fa36f14c254e0.jpg)
Membro desde: 17/10/2006 18:32:40
Mensagens: 59
Offline
|
Daniel Ilha wrote:
Não consegui enteder a diferença de usar:
1) && ou &
2) || ou |
se eu não estiver enganado
bit a bit
| e &
lógicos
|| e &&
a) (true | true)
dessa forma fará a leitura das duas
b) (true || true)
dessa forma fará a leitura apenas da primeira
pra que continuar sendo que a primeira já é true?
c) (false & true)
fará a leitura das duas
d) (false && true)
dessa forma fará a leitura apenas da primeira
pra que continuar sendo que a primeira já é false???
|
eu sempre desejei mudar o mundo, mas nunca me deram o código fonte ...
hoje tenho em minhas mãos: Bíblia!!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 10:54:07
|
Rulio
JavaBaby
![[Avatar]](/images/avatar/a652e914c736dfaf8a6667ae6936f0d6.jpg)
Membro desde: 22/08/2006 00:34:38
Mensagens: 94
Offline
|
só acrescentando...
com o operador &&, caso a primeira expressão seja FALSE o compilador nem perde tempo em verificar a segunda expressão.
A mesma coisa para o |, caso a primeira expressão for TRUE ele nem testa a segunda.
abraços.
|
Sun Certified Java Programmer 5.0
"Nada é simples demais que não possa ser abstraído, nada é complexo demais que não possa ser generalizado." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 11:05:14
|
Dieval Guizelini
Virtual Machine Man
![[Avatar]](/images/avatar/9fc92b9c69b711dcb880ccb743fc6f06.jpg)
Membro desde: 05/07/2006 14:39:44
Mensagens: 570
Localização: Curitiba - PR
Offline
|
Veja este código de exemplo:
Saída deste código:
avaliando &
Avaliando 1 - true
Avaliando 1 - false
Avaliando 2 - false
Avaliando 2 - true
Avaliando 3 - true
Avaliando 3 - true
avaliando &&
Avaliando 1 - true
Avaliando 1 - false
Avaliando 2 - false
Avaliando 3 - true
Avaliando 3 - true
5
3
2
O operador ^ representa o OU EXCLUSIVO.
fw
|
Sun Certified Java Programmer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 11:05:16
|
Daniel Ilha
JavaBaby
Membro desde: 23/06/2006 11:42:08
Mensagens: 79
Localização: Porto Alegre
Offline
|
Rulio;
Se a primeira expressão for "true" ele não testará a segunda com o operador "|", fiquei com dúvida, pois nas respostas anteriores verifiquei que o teste fica somente na primeira se o operador for "||".
Me informe se estiver entendido errado.
um grande abraço a todos.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 11:12:29
|
JohnJohn
Debugger
![[Avatar]](/images/avatar/29babcee1a2bd1625d8fa36f14c254e0.jpg)
Membro desde: 17/10/2006 18:32:40
Mensagens: 59
Offline
|
Daniel Ilha wrote:Rulio;
Se a primeira expressão for "true" ele não testará a segunda com o operador "|", fiquei com dúvida, pois nas respostas anteriores verifiquei que o teste fica somente na primeira se o operador for "||".
daniel,
você está correto ...
deve ter sido um erro de digitação do nosso amigo ...
|
eu sempre desejei mudar o mundo, mas nunca me deram o código fonte ...
hoje tenho em minhas mãos: Bíblia!!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 11:13:41
|
neohacker
Virtual Machine Man
![[Avatar]](/images/avatar/e5a419ed77a4e034849e1e1b68ba015e.jpg)
Membro desde: 30/10/2006 15:23:14
Mensagens: 576
Localização: Santo André
Offline
|
Se vc tiver os 2 operadores ele só avaliará o 1º e dependendo da resposta ai sim o segundo com somente 1(um) operador ele sempre avaliará as 2 expressões
"&&" Avalia a 1ª e depois somente se a 1ª for verdadeira ele analiza a 2ª
|
http//www.tecnologiaims.blogspot.com
↑ Grab this Headline Animator http://www.imstechnology.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 11:15:40
|
Daniel Ilha
JavaBaby
Membro desde: 23/06/2006 11:42:08
Mensagens: 79
Localização: Porto Alegre
Offline
|
Valeu pessoal
Espero ficar rápido como vocês um dia!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 11:15:59
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Em Ada existem os operadores "and" (que equivale ao "&" do Java) e "and then" (que equivale ao "&&"), assim como "or" ("|") e "or else" ("||"). Acho que nesse ponto Ada é mais fácil de entender que C++ ou Java (onde você tem de olhar esses detalhes microscópicos).
(Em Ada o operador /= quer dizer "diferente de", e o operador "=" quer dizer "igual")
|
|
|
 |
|
|