Ir ao conteúdo
  • Cadastre-se

C# Mais de uma condição para o loop while em C#


Ir à solução Resolvido por Karen T. Zambrano,

Posts recomendados

Boa noite, pessoal!

 

Preciso de uma ajuda! Estou programando em C# e é uma linguagem bastante nova pra mim, por isso fiz inicialmente meu projeto em C++, onde já testei e está rodando e dando os resultados corretamente. Agora estou passando o código para o C# (Windows Forms) pelo Visual Studio 2017, mas estou com um problema em um loop while que tem 3 condições para serem avaliadas, ligadas com o conectivo "ou".

Em C++, essa condição ficou da seguinte forma:

while (fabs(somah1)>0.001|| fabs(somah2) > 0.001 || fabs(somah3) > 0.001 == true)
{
   //Bloco de código
}

No meu projeto, preciso que o while seja executado caso qualquer uma dessas variáveis somah1, somah2 ou somah3 não satisfaça o intervalo.

 

Minha dúvida é: como fazer isso em C#?

Tentei usar as duas alternativas a seguir, sem sucesso:

while (Math.Abs(somah1)>0.001|| Math.Abs(somah2) > 0.001 || Math.Abs(somah3) > 0.001 == true)
{
 //Bloco de código
}
while (Math.Abs(somah1)>0.001|| Math.Abs(somah2) > 0.001 || Math.Abs(somah3) > 0.001)
{
 //Bloco de código
}

 

Alguém saberia me ajudar? Não achei nada sobre a sintaxe disso em C#.

Link para o comentário
Compartilhar em outros sites

  • Solução

@allanxd

quando clico no botão que deveria executar esse while, a janela trava e preciso parar a depuração. Acredito que esteja acontecendo um loop infinito por algum motivo, quando coloco break ao final do bloco de código do while o programa me retorna os valores como se não tivesse passado pelo while... e se coloco continue ele trava também. 

 

Não acredito que seja um problema no bloco de código dentro do while, pois já verifiquei cada etapa dele, além da mesma lógica estar funcionando dentro do loop em C++.

 

Preciso que tenha o math.abs pra verificar para valores  < -0.001 ou >0.001, todas as minhas variáveis são do tipo double.

adicionado 5 minutos depois

@Flávio Pedroza ahh resolveu o problema!!! Não acredito hahaha

 

Muito obrigada, era isso mesmo. Não sabia que cada condição precisava estar dentro de parênteses. 

 

Obrigada mesmo, salvou meu projeto 👏👏👏

Link para o comentário
Compartilhar em outros sites

E nessa travada, o programa joga alguma exceção? As variáveis são modificadas ao longo do loop? Pode ser loop infinito mesmo.

 

Se souber usar o debugger do Visual Studio, recomendo que coloque breakpoints e vá testando o laço.

 

É meio difícil descobrir o que é palpitando. Não sei como está feito todo o código.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...