GARANTIR DESCONTO

Fórum Problema de lógica (desvio condicional) #215901

21/02/2004

0

Quando eu uso o outro proximo else, ele não identifica a variável...
Um exemplo: Eu mando um valor ´VARALPHA´ para a varável senão, eu envio ´VAROMEGA´, mas ele não lê o ´VAROMEGA´...
E nenhum valor seguinte...

[b:a94e717035][color=red:a94e717035]Título editado pelo Moderador (AZ) - Removido: ´Um probleminha...´[/color:a94e717035][/b:a94e717035]


Jasig Aurumalfa

Jasig Aurumalfa

Responder

Posts

21/02/2004

Fórum Vini

Poderia explicar melhor seu problema? :?:

Vinicius.


Responder

Gostei + 0

21/02/2004

Jasig Aurumalfa

Meu problema eh igual esse exemplo abaixo:

If VARSTRING=´VARALPHA´ then
begin
VARALPHAFORM.Show //Esse ele lê
end
else
begin
If VARSTRING=´VAROMEGA´ then
begin
VAROMEGAFORM.Show //Esse ele não lê
end;
end;


Responder

Gostei + 0

21/02/2004

Marco Salles

Deveria Ler Sim...Eu Não Vejo Nada De Errado Com a Lógica Do Seu Código, Tirando é Claro a Sinta-se(Excesso De Begin-end), Mas Esta Situação Não É Calamitosa Devido ao Fato Que Voce Mencionou Em Outro Tópico Que Esta Querendo Se Familarizar Com If-Else...O Que Eu Posso De Dizer entre Outras Coisas é o Seguinte: Ou o Valor De ´VARSTRING´
Nunca é ´VAROMEGA´ , Ou O Form VAROMEGAForm Não Foi Criado, Mas Isto Deveria Dar Um Erro Na Execução :?: No Mais Olhe Só Com Poderemso Escrever o Seu Código Com Menos Begin-end

If VARSTRING=´VARALPHA´ then  
   VARALPHAFORM.Show //Esse ele lê 
else 
   If VARSTRING=´VAROMEGA´ then 
        VAROMEGAFORM.Show //Esse ele não lê 




Responder

Gostei + 0

21/02/2004

Jasig Aurumalfa

Obrigado pela ajuda, um professor meu me disse que eu deveria ter cuidado com o exesso de Begin´s, mas tal erro na lógica poderia causar tal efeito?


Responder

Gostei + 0

21/02/2004

Marco Salles

Talvez, Eu Não Mencionei Anteriormente Mas ´Tecnicamente´ Esta Faltando Dois Pontos e Vírgula No Seu Código, Não Entendi a Sua Colocação Mas Tirando a Sinta-se, Voce Consegui Ou Não Consegui ´Ler´
o ´VAROMEGA´ :?: :?: :?:

Voce Escreveu o Código Abaixo:
If VARSTRING=´VARALPHA´ then 
  begin 
    VARALPHAFORM.Show //Esse ele lê 
  end 
else 
  begin 
    If VARSTRING=´VAROMEGA´ then 
       begin 
         VAROMEGAFORM.Show //Esse ele não lê 
       end; 
   end;


Tecnicamente Esta Faltando Dois Pontos e Virgula No Seu Código:


If VARSTRING=´VARALPHA´ then 
  begin 
    VARALPHAFORM.Show; //Esse ele lê [color=darkred]*****Ponto e Vírgula[/color]
  end 
else 
  begin 
    If VARSTRING=´VAROMEGA´ then 
       begin 
         VAROMEGAFORM.Show; //Esse ele não lê [color=red]*****Ponto e Virgula[/color]
       end; 
   end;



Diga-se De Passagem Que Foi Assinala-do Para Voce, Em Outro Tópico Que Antes Do Else Não Se Usa Ponto-Virgula, Mas é na Istrução Imediatamente ANTERIOR E Não Em Toda Instrução Anterior...Mas Voce,
Consegui Ou Não Ler 0 o ´VAROMEGA´ :?: :?: :?:


Responder

Gostei + 0

21/02/2004

Marcelo

Tente fazer o seguinte:


If UpperCase( VARSTRING ) = ´VARALPHA´ then
VARALPHAFORM.Show
else
VAROMEGAFORM.Show;

Certamente assim você terá algum resultado!

Valeu?


Responder

Gostei + 0

21/02/2004

Aroldo Zanela

Colega,

Não há nenhum problema no seu código. Fiz uma simplificação mantendo ´begins e ends´ e a estrutura lógica para quem quiser testar, pois funciona para ambos os valores:

var varString: String;
begin
varString := ´VAROMEGA´;

If VARSTRING=´VARALPHA´ then
begin
ShowMessage(´VarAlphaForm´)
end else
begin
  // Tudo que for diferente de VARALPHA
If VARSTRING=´VAROMEGA´ then
begin
ShowMessage(´VarOmegaForm´)
end;
end;
end;



Responder

Gostei + 0

21/02/2004

Tnaires

[quote:5e55e2e7d5=´Marco Salles´]Diga-se De Passagem Que Foi Assinala-do Para Voce, Em Outro Tópico Que Antes Do Else Não Se Usa Ponto-Virgula, Mas é na Istrução Imediatamente ANTERIOR E Não Em Toda Instrução Anterior...[/quote:5e55e2e7d5]
De fato, eu deveria ter sido mais claro. Grande marco.


Responder

Gostei + 0

21/02/2004

Jasig Aurumalfa

Jah q você pode alterar o título, poderia colocar:
Dúvida no desenvolvimento do comando ele...
Seria mais claro...


Responder

Gostei + 0

22/02/2004

Beppe

[quote:4569ca8091=´Jasig Aurumalfa´]Jah q você pode alterar o título, poderia colocar:
Dúvida no desenvolvimento do comando ele...
Seria mais claro...[/quote:4569ca8091]

Ue, o el[b:4569ca8091]s[/b:4569ca8091]e ja esta desenvolvido...


Responder

Gostei + 0

22/02/2004

Facundo

Sobre uma afirmação que fizeram nesta pergunta. A falta dos dois ponto-e-virgulas não deu erro porque em pascal a última linha dentro de uma sequencia begin end não precisa ter ponto-e-virgula. Como ele só colocou uma linha dentro de cada begin end, esta não precisa do terminador. Ex.:

Begin
   If (a = 1) Then
   Begin
      ShowMessage(´a = 1´);
      edCodigo.SetFocus;
      Exit    //Vejam que aqui não precisa ´;´ 
   End;
   ShowMessage(´Fim sequencia´)   //Aqui também não precisa ´;´
end;



Responder

Gostei + 0

22/02/2004

Beppe

Sobre uma afirmação que fizeram nesta pergunta. A falta dos dois ponto-e-virgulas não deu erro porque em pascal a última linha dentro de uma sequencia begin end não precisa ter ponto-e-virgula. Como ele só colocou uma linha dentro de cada begin end, esta não precisa do terminador. Ex.:


Exato, porque em Pascal(Delphi), o ; é separador, e não terminador de comandos.


Responder

Gostei + 0

22/02/2004

Marco Salles

Concordo Em Genero, Numero e Grau...Apenas Coloquei o Termo:
´Tecnicamente´:
Talvez, Eu Não Mencionei Anteriormente Mas ´[color=red:c1eb6347b5]Tecnicamente´ [/color:c1eb6347b5]Esta Faltando Dois Pontos e Vírgula No Seu Código
....O Que Acontece Que o Nosso Amigo ´Jasig Aurumalfa´ Tinha Já Feito Em Outro Tópico Uma Pergunta Sobre a Estrutura If-Else e Foi Colocado Para Ele Uma Estrutura Toda Sem Ponto-Virgula..Para O Amigo Não Levar Isto Como Regra Pensei Ser Melhor Que o ´Jasig Aurumalfa´ Aprenda Primeiro o Caminho, Para Depois Aprender O Atalho...



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar