2015-03-24 7 views
-3

У меня есть некоторые проблемы с пониманием некоторых логических выражений Паскаля и не понимаю, как работает цепочка or/and.Приоритет булевых операторов в Pascal

  • Почему False or True and True = True?
  • Почему False or True and True or False = True?

Как я могу видеть, он оценивает их справа налево или что-то мне не хватает?

+2

Это не имеет значения, что оператор старшинства был в этих двух выражений. Они всегда будут оценивать эти ценности. Почему вы удивлены? – EJP

ответ

2

См. http://www.freepascal.org/docs-html/ref/refch12.html для приоритета оператора в Free Pascal.

Как вы можете видеть, and имеет более высокий приоритет над or оператора:

False or True and True = False or (True and True) = False or True = True 
False or True and True or False = False or (True and True) or False = False or True or False = True or False = True 
+0

Большое спасибо: 3 – Matei

+0

Приоритет оператора в Паскале определяется Руководством пользователя и отчетами * Pascal, * Дженсен и Вирт. Бесплатный Паскаль ничем не отличается. На самом деле приоритет в этих выражениях не влияет на результат. – EJP

Смежные вопросы