Dùvidas com o uso do "if"

Dae galera blz?

Seguinte… em Delphi se você faz isso:

if (teste1) and (teste2) then …

Se o teste1 for false ele nem entra no teste2!

Em Java, como funciona? É o mesmo esquema?

[]'s

Irmao, pelo q vejo ja meche com o pascal!

O mesmo codigo assim em pascal:

if (ent1 = 2) and (ent2 = 2) then
begin
   writeln( ' Pascal ' );
end.

Em java:

if ( (ent1 == 2)  && ( ent2 == 3 ) ) {
   System.out.println( " Java " );
}

Espero q tenha ajudado!!!

Abracao e te +

Hum, não era bem isso que eu queria…

Imagine o seguinte:

Você tem uma rotina que dá um DROP em alguma tabela do banco e retorna true / false, correto? Mas essa rotina só vai ser executada se o Flag DROP for true. Ok?

Então veja isso:
Ps: executaDrop = nome da rotina que dá o DROP.

if ((DROP) && (executaDrop)) {
  System.out.println("Tabela dropada");
}

O que isso faz? Bom, se o flag DROP for true e executaDrop retornar true ele mostra a msg acima na tela. Mas e se SOMENTE o flag DROP for false, o Java chega a executar a rotina executaDrop?

Acho que assim ficou mais claro!

[]'s

Sim … ele vai executar o método e vai verificar se a sua variável eh verdadeira … caso as duas sejam ‘true’ ele executa o código dentro do if …

se você quiser que ele somente verifique o valor da variável e somente com esta sendo true ele execute o método … então tem que colocar assim:

if(drop) {
if(executaDrop) {

}
}

[]s

Você tem certeza disso? Desculpe a dúvida, mas é que obti resultados diferentes aqui…

(resolvi testar hehe!)

Mas como isso não é para agora não me atentei muito, mas a princípio ele só executa o segundo teste se o primeiro for verdadeiro. Alguém confirma isso?

[]'s

Creio que no caso não sej ao if sua dúvida e sim o comparador…

&& é E, se coisa1 for verdaede e a coisa 2 for verdaede mostra
|| é ou , se coisa 1 for verdade ou coisa 2 for verdaed mostra

será isso???

8O

[quote=“FelipeSS_2”]Creio que no caso não sej ao if sua dúvida e sim o comparador…

&& é E, se coisa1 for verdaede e a coisa 2 for verdaede mostra
|| é ou , se coisa 1 for verdade ou coisa 2 for verdaed mostra

será isso???

8O[/quote]

Não, também não é isso. Mas fiz um teste “mais radical” e realmente aconteceu o que eu esperava… a segunda condição só foi testada sendo a primeira true!

Valeu pela ajuda!

[]'s

[quote=“mds”][quote=“FelipeSS_2”]Creio que no caso não sej ao if sua dúvida e sim o comparador…

&& é E, se coisa1 for verdaede e a coisa 2 for verdaede mostra
|| é ou , se coisa 1 for verdade ou coisa 2 for verdaed mostra

será isso???

8O[/quote]

Não, também não é isso. Mas fiz um teste “mais radical” e realmente aconteceu o que eu esperava… a segunda condição só foi testada sendo a primeira true!

Valeu pela ajuda!

[]'s[/quote]

Qual teste mais radical???
???

ta

denada :???:

creio que vc ta falando de e logico

bom eh o seguine

quando voce usa o && ele faz igual no delphi…quando encontra o primeiro false ele nao testa os outros

ex if (DROP && executeDrop) …se o drop for falso ele nao testa o execute drop…sai direto do if

masssss se voce usar o e logico…assim ô

&
ex = if (DROP & executeDrop) , mesmo se o drop for falso…ele executa o executeDrop
ele …mesmo que encontre um false…ele executa todas os outros testes…mas claro que nao entra no if

acho que eh isso
[]'s

e ai MDS

seguinte,pra sair do if quando a primeira condicao for falsa tenta o seguinte:

if(condicao1 & condicao2){
...
//seu codigo
...
} else // mais codigo...

era isso mesmo que vc precisava?
t+!!!

Acho q a pergunta é simples:
se ele verifica a segunda condição se a primeira for false.

A resposta é não!

se a primeira for false, ele já sai do if
tipo

if ( obj != nulll && obj.getValor() > 0 ){
  
}

Se a variável obj for nula, ele nem testa a segunda condição. Se ele testasse, daria NullPointerException, mas não dá.

[]'s

[quote=“DiegoDiSouza”]e ai MDS

seguinte,pra sair do if quando a primeira condicao for falsa tenta o seguinte:

if(condicao1 & condicao2){
...
//seu codigo
...
} else // mais codigo...

era isso mesmo que vc precisava?
t+!!![/quote]

Acho que é ao contrário do que você disse né?

Pra sair quando a primeira for false uso &&
E para continuar mesmo a primeira sendo false uso &!

Correto? Corriga-me se eu estiver errado!

[]'s

Exatamente isso andersonra e JavaNight! :] Obrigado pela ajuda!

Eu declarei uma variável e fiz algo assim:

if (qualquerCoisa && rotinaQueAlteraVariavel) {
    ...
}

Setei “qualquerCoisa” como true e percebi que a variavel foi alterada atravez da rotin “rotinaQueAlteraVariavel”, e depois fiz qualquerCoisa = false e a rotina não foi executada! :]

[]'s