2010-08-12 4 views
2

Je sais & & est l'opérateur logique ici, aussi les conditions sur la gauche et sur la droite sont des opérandes, non? Comme:x> y && z == 5 - comment s'appellent les parties de cette expression?

1 + 1 est une expression où + est l'opérateur et les nombres sont des opérandes. Je ne sais pas si la condition elle-même s'appelle aussi l'opérande parce qu'elle est comparée par un opérateur. Je pense que oui. +

Merci

Répondre

6

Quelles sont les parties appelées?

>, && et == sont tous les opérateurs. Les opérandes sont les valeurs transmises aux opérateurs. x, y et z sont les opérandes initiaux. Une fois x > y et z == 5 sont évalués, ces résultats booléens sont utilisés comme opérandes à l'opérateur && ce qui signifie les expressions elles-mêmes ne sont pas les opérandes à &&, les résultats de l'évaluation de ces expressions sont les opérandes.

Lorsque vous mettez opérandes et un opérateur ensemble, vous obtenez une expression (à savoir x > y, z == 5, boolResult == boolResult)

Comment sont-ils évalués?

Dans la plupart (sinon toutes) les langues x > y seront évaluées en premier.

Dans les langues qui prennent en charge le court-circuit, l'évaluation s'arrête si x > y est faux. Sinon, z == 5 est la suivante.

Encore une fois, dans les langages prenant en charge le court-circuit, l'évaluation s'arrêtera si z == 5 est faux. Sinon, le && viendra en dernier.

>, &&, et == sont tous des opérateurs. Les opérandes sont les valeurs transmises aux opérateurs. x, y et z sont les opérandes initiaux. Une fois que x > y et z == 5 sont évalués, ces résultats booléens sont utilisés comme opérandes de l'opérateur &&.

+4

Intéressant combien upvotes cette réponse obtient. Aucun d'entre vous n'a lu la question. :) – scy

+1

C'est parce que ce n'est pas clair quelle est la question. J'ai ajouté plus d'informations pour couvrir les deux questions que je vois (une dans le titre, une autre dans le corps de la question). –

1

Si votre question est vraiment ce que les parties gauche et droite du && sont appelées, je dirais "expression", peut-être "expression booléenne".

0

En C# le & & est un opérateur et la gauche et la droite sont des expressions. Dans une instruction if, si la gauche est évaluée à vrai, le droit ne sera jamais évalué.

+0

Etes-vous sûr de ça? Je ne pense pas qu'ils soient appelés expressions car l'expression est le tout qui se traduira par faux ou vrai. Je pense que cet opérateur doit opérer avec des opérandes. – Bliznak

+0

Vous avez raison de dire que le tout est une expression. Cependant, si vous deviez utiliser la gauche et le droit individuellement dans une instruction if, ils seraient une expression. Donc, vous pourriez dire que vous avez deux sous-expression entre un opérateur. –

0

Il s'agit d'une expression de comparaison booléenne composée de deux expressions de comparaison booléennes distinctes.

Selon la langue, l'interprétation dépend de la priorité de l'opérateur. Comme il ressemble à un dialecte de type C, je suppose que & & est un court-circuit ET.(Plus d'explications here).

Ordre des opérations serait de gauche à droite comme les testeurs d'égalité (>,> =, < =, ==,! =) Ont la même priorité aux opérations booléennes (& &, ||).

x> y seraient evaulated, et, si oui, z == 5 serait évalué, puis les premier et second résultats seraient ANDed ensemble. Cependant, si x> y était faux, l'expression retournerait immédiatement false, en raison d'un court-circuit.

1

Conditions, ou en cas de ||: Alternatives

0

Vous avez raison que x>y et z==5 sont opérandes et && est un opérateur. De plus, ces deux opérandes contiennent à leur tour leurs propres opérandes et opérateurs. Ceux-ci sont appelés opérandes complexes

Alors:

  • x>y et z==5 sont opérandes à l'opérateur &&
  • x et y sont opérandes à l'opérateur >
  • z et 5 sont opérandes au opérateur ==

En ce qui concerne les composants individuels et la façon de les nommer:

  • Les deux == et > sont opérateurs de comparaison, qui comparent les valeurs de deux opérandes.
  • == est un opérateur égalité et est évalué à true si l'opérande de gauche est égal à l'opérande de droite.
  • > est un opérateur supérieur à, et est évalué à true si l'opérande de gauche est supérieur à l'opérande de droite.
  • && est un opérateur logique , spécifiquement logique ET. Il évalue à vrai si les opérandes gauche et droit sont vrais.

Lorsque vous faites référence à chaque opérande, il est standard pour se référer à eux par leur position de, à savoir la gauche opérande et droit opérande - bien qu'il n'y ait pas de nom « officiel » - premier et deuxième travail d'opérande également bien.Notez que certains opérateurs tels que ! avoir qu'un seul opérande, et certains ont même 3 (l'opérateur ternaire , qui prend la forme condition ? true_value : false_value

+0

Merci. De toute façon, est-il correct de dire "la condition à gauche de l'opérateur"? Ou je dois dire l'opérande sur la gauche de l'opérateur. Ne me dérange pas la grammaire s'il vous plaît, juste le sens :) – Bliznak

2

Une alternative serait de se tourner vers le grammar of C#

Il stipule ce qui suit :

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

Juste comme "généralisant les expressions" est probablement assez précis :)

Questions connexes