| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2003 17:03:48
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Galera, surgiu uma dúvida meio besta aqui. Eu tenho o seguinte codigo:
O problema é que se a() for false, b() e c() não vão ser executados, e isso traz alguns problemas pra mim - eu vou precisar dos efeitos colaterais deles dentro do bloco else. Qual seria o melhor jeito de fazer isso de forma que a(), b() e c() fossem executados?
Às vezes a gente sente falta de uma linguagem que faça o que a gente quer dizer, não o que a gente diz
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2003 17:08:32
|
ricardolecheta
GUJ Master
![[Avatar]](/images/avatar/b59c67bf196a4758191e42f76670ceba.jpg)
Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline
|
não daria de colocar o resultado dos metodos em variáveis?
boolean a = a();
boolean b = b();
...
if(a && b && c) {
...
assim os métodos seriam executados...
|
Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2003 17:09:24
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
da para tirar os short circuit (substituir && por & )
mas o esquema complica no else, que em qualquer um dos casos, vai executar se a, e/ou b, e/ou c forem false, e não apenas se os 3 forem false.
para isto teria que armazenar os valores de retorno de a, b e c (para que eles não fossem executados novamente)
e transformar o else em else if (!(va && vb && vc)){}
ai, aqui o short circuit não tem mais problema
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2003 17:31:45
|
maxguzenski
Virtual Machine Man
![[Avatar]](/images/avatar/d4c2e4a3297fe25a71d030b67eb83bfc.jpg)
Membro desde: 07/03/2003 11:47:42
Mensagens: 549
Localização: Porto Alegre
Offline
|
if(a() & b() & c())
dessa forma todos sao executados, e so entra no "if" se todos forem verdadeiros
|
Maximiliano Ferreira Guzenski
Sun Certified Java Programmer 1.4
Sun Certified Web Component Developer 1.4
http://www.guzenski.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2003 17:37:11
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Valeu gente, era isso mesmo
Acabei usando a solução do urubatan, no fim das contas eu nao precisava entrar no else APENAS se a, b e c fossem false
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2003 23:09:01
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
usa a operacao de identidade do E com o OU que funciona:
quem disse que faculdade é completamente inutil...
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2003 23:37:43
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
segundo grau de eletrônica também tem isto ai
mas não entendi o que tu quis dizer, o que tu colocou ali seria uma simples substituição, não elimina o short circuit
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2003 00:59:25
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
tem razao
viajei total
vai causar exatamente o mesmo problema
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2003 12:25:49
|
Guilherme
Thread.start()
Membro desde: 28/05/2003 23:22:35
Mensagens: 31
Offline
|
Isto se chama satisfatibilidade
Seja H uma fórmula ;
H = (A ^ B ^ C ^ D)
é satifatível, se e somente se
I[A] = I[B] = I[C] = I[D] = T;
mas se..
I[A] = I[B] = T
I[C] = I[D] = F
A fórmula H é insatistatível
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2003 13:04:14
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
agora fui eu quem viajou,
não entendi do que tu ta falando
entendi a formula que tu colocou e tudo,
mas isto tem a ver com o que mesmo??
se não me engano tu só explicou matematicamente como descobrir se uma "formula" é verdadeira ou falsa
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2003 14:25:47
|
Guilherme
Thread.start()
Membro desde: 28/05/2003 23:22:35
Mensagens: 31
Offline
|
é, eu só expliquei matematicamente, só que usando síbolos da lógica proposicional.
Eu só bati o olho na pergunta e tive uma sacada, que só seria executado algo se fosse satisfatível.. hehehe..
agora eu usaria o loop switch
(também num to entendendo nada hehehe)
|
|
|
 |
|
|