Clipper On Line • Ver Tópico - FOR EACH pra facilitar
Mudar para estilo Clássico
Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.
Postar uma resposta

FOR EACH pra facilitar

03 Jul 2020 19:36

O FOR EACH facilita, mas facilita muito mais se usar nomes adequados

Código:
   FOR nCont = 1 TO Len( ::acKeyboard )
      FOR nCont2 = 1 TO Len( ::acKeyboard[ nCont ] )
         @ ::nTop + 1 + nCont * 2, ::nLeft + 1 + ( nCont2 - 1 ) * 5 SAY ::acKeyboard[ nCont, nCont2 ]
      NEXT
   NEXT


olhando assim, difícil entender, e com FOR/EACH talvez não facilite.
Mas com nome adequado...

Código:
   FOR EACH aLinhaTeclado IN ::acKeyboard
      FOR EACH cTecla IN aLinhaTeclado
         @ ::nTop + 1 + aLinhaTeclado:__EnumIndex * 2, ::nLeft + 1 + ( cTecla:__EnumIndex - 1 ) * 5 SAY cTecla
      NEXT
   NEXT


É a montagem do teclado da calculadora, uma linha por vez, e uma tecla por vez.
Eu estava na dúvida se alterava pra FOR/EACH, porque parecia que ia só complicar.
Mas pensei no nome adequado, e aí achei que valia a pena.

FOR EACH pra facilitar

08 Jul 2020 16:47

Gosto muito de usar o for each, switch e o with object

FOR EACH pra facilitar

09 Jul 2020 11:53

NiltonGM escreveu:Gosto muito de usar o for each, switch e o with object


O SWITCH ainda acho esquisito.
Isso porque ele é diferente do DO CASE, pode entrar em todas as condições seguintes.

FOR EACH pra facilitar

09 Jul 2020 13:12

JoséQuintas escreveu:
NiltonGM escreveu:Gosto muito de usar o for each, switch e o with object


O SWITCH ainda acho esquisito.
Isso porque ele é diferente do DO CASE, pode entrar em todas as condições seguintes.


o SWITCH tem uma finalidade um pouco diferente do DO CASE, dependendo da lógica eu uso o SWITCH ou o DO CASE, só temos que lembrar que no SWITCH para não passar em todas as condições, tanto em harbour como em outras linguagens que utiliza o SWITCH, tem que dar um EXIT no final de cada condição.
Exemplo:
Código:
SWITCH nVar
   CASE 1
      ...codigo1...
      EXIT
   CASE 2
      ...codigo2...
      EXIT
   CASE 3
      ...codigo3...
      EXIT
ENDSWITCH
Postar uma resposta