x> y && z == 5 - как называются части этого выражения? - PullRequest
2 голосов
/ 12 августа 2010

Я знаю, && здесь логический оператор, также условия слева и справа являются операндами, верно?Например:

1 + 1 - это выражение, где + - оператор, а числа - операнды.Я просто не знаю, называется ли само условие и операндом, потому что оно сравнивается оператором.Я так думаю. +

Спасибо

Ответы [ 7 ]

6 голосов
/ 12 августа 2010

Как называются детали?

>, && и == являются операторами. Операнды - это значения, передаваемые операторам. x, y и z - начальные операнды. После оценки x > y и z == 5 эти логические результаты используются в качестве операндов оператора &&, что означает , сами выражения не являются операндами &&, результаты вычисления этих выражений являются операнды .

Когда вы соединяете операнды и оператор, вы получаете выражение (т.е. x > y, z == 5, boolResult == boolResult)

Как они оцениваются?

В большинстве (если не во всех) языках x > y будет оцениваться первым.

На языках, которые поддерживают короткое замыкание, оценка остановится, если x > y будет ложным. В противном случае z == 5 следующий.

Опять же, на языках, которые поддерживают короткое замыкание, оценка остановится, если z == 5 будет ложным. В противном случае && будет последним.

>, && и == являются операторами. Операнды - это значения, передаваемые операторам. x, y и z - начальные операнды. После оценки x > y и z == 5 эти логические результаты используются в качестве операндов оператора &&.

2 голосов
/ 12 августа 2010

Одной из альтернатив будет обращение к грамматике C #

. В ней говорится следующее:

conditional-and-expression   &&   inclusive-or-expression

Простое обобщение в виде "выражений", вероятно, является точнымдостаточно:)

1 голос
/ 12 августа 2010

Условия , или в случае ||: Альтернативы

1 голос
/ 12 августа 2010

Если ваш вопрос действительно состоит в том, как называются части слева и справа от &&, я бы сказал «выражение», возможно, «логическое выражение».

0 голосов
/ 12 августа 2010

Вы правы, что x>y и z==5 - операнды, а && - оператор.Кроме того, оба этих операнда по очереди содержат свои операнды и операторы.Они называются сложные операнды

Итак:

  • x>y и z==5 являются операндами для оператора &&
  • x и y являются операндами для оператора >
  • z и 5 являются операндами для оператора ==

Относительно отдельных составных частей икак их назвать:

  • Оба == и > являются операторами сравнения , которые сравнивают значения двух операндов.
  • == is равенство и вычисляется в true, если левый операнд равен правому операнду.
  • > на больше, чем , и оценивается в trueесли левый операнд больше правого операнда.
  • && является логическим оператором , в частности логическим И .Значение true, если левый и правый операнд верны.

При обращении к каждому операнду стандартно ссылаться на них по их позиции , то есть левый операнд и правый операнд - хотя «официального» имени нет - первый и второй операнд работают одинаково хорошо.Обратите внимание, что некоторые операторы, такие как !, имеют только один операнд, а некоторые даже имеют 3 (оператор троичный , который принимает форму condition ? true_value : false_value

0 голосов
/ 12 августа 2010

Это логическое выражение сравнения, которое состоит из двух отдельных логических выражений сравнения.

В зависимости от языка, как это интерпретируется, зависит от приоритета оператора.Поскольку он выглядит как диалект C-like, я предполагаю, что && - это короткое замыкание AND.(Более подробное объяснение здесь ).

Порядок операций будет слева направо, поскольку тестеры равенства (>,> =, <=, ==,! =) Имеют равный приоритет с логическим значениемОперации (&&, ||). </p>

x> y будут вычислены, и если true, z == 5 будет оценено, и тогда первый и второй результаты будут объединены AND.Однако, если x> y было ложным, выражение немедленно вернулось бы из-за короткого замыкания.

0 голосов
/ 12 августа 2010

В c # оператор && является оператором, а левый и правый - выражениями. В операторе if, если слева значение равно true, право никогда не будет оценено.

...