Precedência global

Home Fóruns Programação Básica Precedência global

Visualizando 1 resposta da discussão
  • Autor
    Posts
    • #89158

      no exemplo temos a primeira parte da expressão nao (5>3)[…], até aqui tudo certo. Porém se eu remover os parênteses o Portugol informa um erro sublinhando o nao.
      nao 5>3… parece que a expressão tenta fazer o não antes do que >

      Se os operadores relacionais têm precedência aos lógicos, esse erro não deveria acontecer! Certo?

    • #89178
      IcaroFilho
      Moderador

      Boa noite Renato.
      Vou tentar passar oq eu acredito que ocorra, pois não sou nenhum especialista.

      primeiramente isto ocorre apenas com a negação.

      logico choice
      choice = 5 > 7 e 5 > 3
      escreva(choice) //falso
      logico choice
      choice = 5 > 7 ou 5 > 3
      escreva(choice) //verdadeiro

      O problema com o nao é que ele serve para umas coisas mais avançadas (como exemplo em javascript, que a negação faz checagem se o valor passado é vazio, nulo ou undefined antes de realizar a operação), provavelmente o mesmo deve ocorrer por debaixo dos panos em Portugol.
      Contudo, é uma boa pratica a utilização dos parênteses nestes tipos de operação, por mais simples que for a operação.:
      choice = ( 1 < 2 )
      pois facilita a leitura para outros programadores lerem. ( uma das principais qualidades de um Dev e saber criar um código limpo para que outros programadores leiam )

Visualizando 1 resposta da discussão
  • Você deve fazer login para responder a este tópico.