melhorando as declaraçoes IF
if (a > b) then
maior = true
else
maior = false
podem ser facilmente convertidades para:
maior = a > b;
eu vi esse exemplo em uma apostila,so que na nao fala nada,alguem poderia me passa outo exemplo de como melhorar as declraçoes IF´S ?
maior = true
else
maior = false
podem ser facilmente convertidades para:
maior = a > b;
eu vi esse exemplo em uma apostila,so que na nao fala nada,alguem poderia me passa outo exemplo de como melhorar as declraçoes IF´S ?
Anicetojunior
Curtidas 0
Respostas
Beppe
27/07/2004
1) Esta otimização que mostrou, simplesmente propaga o valor da comparação, o que vem a ser positivo na maioria dos casos.
2) Se a expressão que governa o [b:0e7c750ee6]if[/b:0e7c750ee6] for uma lista de [b:0e7c750ee6]and[/b:0e7c750ee6] e/ou [b:0e7c750ee6]or[/b:0e7c750ee6], vc deveria por o mais simples*, para evitar que operações custosas e desnecessárias sejam executadas. Em modo normal, a avaliação é ´curto-circuito´, não avalia o resto da expressão quando ela se mostra verdadeira.
3) Coloque o corpo do [b:0e7c750ee6]then [/b:0e7c750ee6]e [b:0e7c750ee6]else[/b:0e7c750ee6], envolto de [b:0e7c750ee6]begin[/b:0e7c750ee6]/[b:0e7c750ee6]end[/b:0e7c750ee6]. Eu não costumo fazer isso, mas vai lhe ajudar a deixar seu cóigo mais legível.
4) Use [b:0e7c750ee6]case[/b:0e7c750ee6] quando for fazer vários testes na mesma expressão, e ela é de tipo ordinal.
Não é uma lista extensiva, só alguns items que me veio agora. :wink:
* Mais simples = consome menos código
2) Se a expressão que governa o [b:0e7c750ee6]if[/b:0e7c750ee6] for uma lista de [b:0e7c750ee6]and[/b:0e7c750ee6] e/ou [b:0e7c750ee6]or[/b:0e7c750ee6], vc deveria por o mais simples*, para evitar que operações custosas e desnecessárias sejam executadas. Em modo normal, a avaliação é ´curto-circuito´, não avalia o resto da expressão quando ela se mostra verdadeira.
3) Coloque o corpo do [b:0e7c750ee6]then [/b:0e7c750ee6]e [b:0e7c750ee6]else[/b:0e7c750ee6], envolto de [b:0e7c750ee6]begin[/b:0e7c750ee6]/[b:0e7c750ee6]end[/b:0e7c750ee6]. Eu não costumo fazer isso, mas vai lhe ajudar a deixar seu cóigo mais legível.
4) Use [b:0e7c750ee6]case[/b:0e7c750ee6] quando for fazer vários testes na mesma expressão, e ela é de tipo ordinal.
Não é uma lista extensiva, só alguns items que me veio agora. :wink:
* Mais simples = consome menos código
GOSTEI 0
Rômulo Barros
27/07/2004
[color=red:197061e429][b:197061e429]Respondendo:[/b:197061e429][/color:197061e429]
Exemplo:
a := 5;
b := 10;
maior := a > b; // Maior receberá ´False´, pois ´a´ não é maior que ´b´
maior := a < b; // Maior receberá ´True´, pois ´a´ é maior que ´b´
Entendeu agora? :wink: :wink:
Exemplo:
a := 5;
b := 10;
maior := a > b; // Maior receberá ´False´, pois ´a´ não é maior que ´b´
maior := a < b; // Maior receberá ´True´, pois ´a´ é maior que ´b´
Entendeu agora? :wink: :wink:
GOSTEI 0
Anicetojunior
27/07/2004
eu tenho a seguinte espressao
if query1.recordcount > 0 then
showmessage(´dados encontrados´)
else
showmessage(´dados nao encontrados´);
end;
como eu posso fazer para melhorar isso de acordo do que foi passado anteriormente ?
if query1.recordcount > 0 then
showmessage(´dados encontrados´)
else
showmessage(´dados nao encontrados´);
end;
como eu posso fazer para melhorar isso de acordo do que foi passado anteriormente ?
GOSTEI 0
Lucas Silva
27/07/2004
if query1.recordcount > 0 then
showmessage(´dados encontrados´)
else
showmessage(´dados nao encontrados´);
end;
como eu posso fazer para melhorar isso de acordo do que foi passado anteriormente ?
Desta Forma fica bem mais rápido!
if query1.IsEmpty then showmessage(´dados nao encontrados´) else showmessage(´dados encontrados´);
GOSTEI 0
Beppe
27/07/2004
como eu posso fazer para melhorar isso de acordo do que foi passado anteriormente ?
Que tipo de melhora pretende alcançar?
Seguir a dica do Lucas é algo que deve fazer, isto deve melhorar a performance. Vc também pode colocar a string numa variável e chamar a função fora do loop, mas isso naum acarretaria em ganho de velocidade.
GOSTEI 0