Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

[VAZA]

IF - problemas com decisões

Recommended Posts

Aew pessoal...

estou "tentando a aprender" a programar em Delphi.

Me expliquem uma coisa, porque depois do IF, se eu colocar um ";" nas linhas de baixo, ele me retorna erro??

por exemplo:

Se eu fizer isso ele nao me retorna erro:

 

begin

 

if txtmarcaproduto.Text = '' then

showmessage ('Você precisa Especificar a MARCA')

 

else

begin

if txtnomeproduto.Text = '' then

showmessage ('Você precisa Especificar o NOME DO PRODUTO')

 

else if txtestoqueproduto.Text = '' then

showmessage ('Você precisa Especificar a Quantidade no Estoque')

 

else if txtpreco.Text = '' then

showmessage ('Você precisa Especificar o Preço do Produto')

 

end

end;

 

Agora se eu fizer assim, ele me retorna erro:

begin

 

if txtmarcaproduto.Text = '' then

showmessage ('Você precisa Especificar a MARCA')

txtmarcaproduto.SetFocus;

else

begin

if txtnomeproduto.Text = '' then

showmessage ('Você precisa Especificar o NOME DO PRODUTO')

txtmarcaproduto.SetFocus;

 

else if txtestoqueproduto.Text = '' then

showmessage ('Você precisa Especificar a Quantidade no Estoque')

 

else if txtpreco.Text = '' then

showmessage ('Você precisa Especificar o Preço do Produto')

 

 

end

 

end;

 

Então eu só posso colocar uma linha de codigo por cada IF??? o que eu posso fazer para arrumar isso??

Abraços,

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.. O erro aparece pq o IF processa apenas 1 linha: IF <condição> THEN Comando // Sem Ponto e Virgula ELSE Comando; // Com Ponto e Virgual agora, se você quer que mais de uma linha faça parte do IF, coloque um BEGIN ... END. Ex; IF <condição> THEN Comando 1; // Todos com Ponto e Virgula Comando 2; Comando 3; ... Comando N; END ELSE BEGIN Comando 1; Comando 2; Comando 3; ... Comando N; END;Observe os PONTO e VIRGULAS;Agora tente montar seu IF novamente !! E fora os IFs seu código tem um pequeno erro de lógica... dê uma olhadinha e tente achar... só assim a gente aprende.Espero ter ajudado.Henrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe.. faltou o BEGINIF <condição> THEN BEGINComando 1; // Todos com Ponto e VirgulaComando 2;Comando 3;...Comando N;ENDELSE BEGINComando 1;Comando 2;Comando 3;...Comando N;END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.