Dúvida no resultado da aula M0206

Home Fóruns Linguagem C Dúvida no resultado da aula M0206

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

      Olá!
      Estou refazendo o curso de c e fiquei com uma dúvida na aula M0206 – Operadores Lógicos na parte 10:20
      O professor mostrou e explicou a ordem de precedência dos operadores, mas o operador relacional != só é considerado depois do operador lógico de negação !

      na aula está assim:

      printf(“%s”, a > b || a < c && !c != 4?”Verdadeiro”:”Falso”);

      O correto não seria assim?
      printf(“%s”, a > b || a < c && !(c != 4)?”Verdadeiro”:”Falso”);

      Fiquei muito confuso porque a negação está no c antes do resultado do operador relaciona!!!

    • #70301
      Tutora Mayla
      Mestre

      Erick, o !c é o uso de um operador lógico “não”, o que significa negar o valor da variável c. Vai inverter o valor lógico dela, ou seja só faz sentido utilizar !c quando c for uma variável lógica. Já o != é o uso de um operador relacional “diferente”. São dois operadores distintos, usados em situações distintas. A precedência do ! é sempre superior a precedência do !=, logo para dar precedência ao != é necessário utilizar os parênteses, que mudam a ordem de precedência.
      Espero ter ajudado, quaisquer outras dúvidas estamos a disposição.

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