[dismiss]
This wiki is a copy of the original Oblivion CS wiki created and maintained by the UESP.net. See CSwiki:Copy Notice for more info.
Difference between revisions of "If"
Jump to navigation
Jump to search
m
→Combining Comparisons
imported>HawkFest |
imported>HawkFest |
||
Line 74: | Line 74: | ||
* In terms of computing, we're talking about a '''precedence number order''', and operator precedence is usually ordered with the corresponding number order. For expressions where two operators of different precedences compete for the same operand, the operator with the ''higher precedence'' wins. | * In terms of computing, we're talking about a '''precedence number order''', and operator precedence is usually ordered with the corresponding number order. For expressions where two operators of different precedences compete for the same operand, the operator with the ''higher precedence'' wins. | ||
* In Common operator notation involving "normal" alegebra or boolean algebra, "*" is always evaluated before "+", it has a higher precedence number than the "+" operator. For example, 3×4+5 = ((3×4)+5), not (3×(4+5)) | * In Common operator notation involving "normal" alegebra or boolean algebra, "*" is always evaluated before "+", it has a higher precedence number than the "+" operator. For example, 3×4+5 = ((3×4)+5), not (3×(4+5)) | ||
* However, this is not the case here: '''OR ("||") has a higher precedence than AND ("&&")''':<pre>if myVar1 == 1 && myVar2 == 1 || myVar2 == 5</pre>is equivalent to<pre>( | * However, this is not the case here: '''OR ("||") has a higher precedence than AND ("&&")''':<pre>if myVar1 == 1 && myVar2 == 1 || myVar2 == 5</pre>is equivalent to<pre>if (myVar1 == 1 && (myVar2 == 1 || myVar2 == 5))</pre>This is true when MyVar1 = 1 AND myVar2 is either 1 or 5.<BR><BR>If you want the "&&" comparision operator to be evaluated first, you have to include that part in parentheses. In this case: <pre>if ((myVar1 == 1 && myVar2 == 1) || myVar2 == 5)</pre>is true when either myVar2 is 5 OR both, myVar1 and myVar2 are 1. | ||
The later also explains why one has to be very careful in positioning conditions in a [http://cs.elderscrolls.com/constwiki/index.php?title=Category:Conditions#The_Condition_List condition list] of an editor item: for the CS/OB's engine, OR has order preference, has precedence over AND. For example, the condition items (A AND B OR C AND D) are evaluated as (A AND (B OR C) AND D), and not (( A AND B) OR (C AND D)), as opposed to common operator notation for most languages. In general, we call this an ''inversed'' or ''negative'' notation. '''Always keep the later in mind when [http://en.wikipedia.org/wiki/Boolean_algebra_%28logic%29#Basic_operations applying boolean algebra] for evaluating some given expression when scripting''', as standard operator notations will lead you to errors. | The later also explains why one has to be very careful in positioning conditions in a [http://cs.elderscrolls.com/constwiki/index.php?title=Category:Conditions#The_Condition_List condition list] of an editor item: for the CS/OB's engine, OR has order preference, has precedence over AND. For example, the condition items (A AND B OR C AND D) are evaluated as (A AND (B OR C) AND D), and not (( A AND B) OR (C AND D)), as opposed to common operator notation for most languages. In general, we call this an ''inversed'' or ''negative'' notation. '''Always keep the later in mind when [http://en.wikipedia.org/wiki/Boolean_algebra_%28logic%29#Basic_operations applying boolean algebra] for evaluating some given expression when scripting''', as standard operator notations will lead you to errors. |