Assignment Operations: Difference between revisions

From BR Wiki
Jump to navigation Jump to search
(edit)
(edit)
Line 26: Line 26:


'''Note''' that when this assignment operator is used in any expression (for example: in the condition of an [[IF]] [[THEN]] statement), parentheses must be used to clarify the order of execution Otherwise, unexpected results may occur.
'''Note''' that when this assignment operator is used in any expression (for example: in the condition of an [[IF]] [[THEN]] statement), parentheses must be used to clarify the order of execution Otherwise, unexpected results may occur.
'''IMPORTANT NOTE:''' when the equal sign is used in an [[If]] [[statement]], it is '''NOT''' used for assignment. Instead, it is used for '''comparison'''. Consider the example below:
00010 let x = 1    ! assignment takes place
00020 let y = 1000 ! assignment takes place
00030 if x = y then print "1 is equal to 1000" ! assignment DOES NOT takes place
In the above example, assignment DOES NOT takes place, instead the IF statement evaluates to FALSE and the '''print''' statement DOES NOT execute.
----
'''IMPORTANT NOTE:''' when the equal sign is used in an [[If]] [[statement]], it is equivalent to using two equal signs '''=='''. So the above example is identical in effect to the one below:
00010 let x = 1    ! assignment takes place
00020 let y = 1000 ! assignment takes place
00030 if x == y then print "1 is equal to 1000" ! assignment DOES NOT takes place
For clarity, it may be better to use '''==''' for comparison.
----
'''IMPORTANT NOTE:''' when the '''forced assignment operator :=''' is used in an [[If]] [[statement]], it is used for '''forced assignment, not for comparison.''' Consider the example below:
00010 let x = 1
00020 if x:=2 then print "forced assignment as a condition of an if statement always evaluates to true"
<noinclude>
<noinclude>
[[Category:Operators]]
[[Category:Operators]]
</noinclude>
</noinclude>

Revision as of 17:26, 10 January 2012

There are two assignment operators in BR: the equal sign =, which denotes regular assignment, and the colon-equal sign :=, which denotes forced assignment,

They are similar in how they work with a slight difference.

Both of them are Binary operators, which means they take two arguments - one on the left, and another one on the right.

Numeric and String variables both may be used with regular and forced assignment operators.

Regular Assignment

The equal sign = simply makes the variable on the left side of it equal to the value on the right side of it. The example below assigns the value of 5 to the variable x:

00010 let x = 5 ! correct

Note that you cannot do the reverse. The example below will result in an error.

00010 let 5 = x ! incorrect

The disadvantage of the equal sign assignment operator = is that it may only be used as a separate statement.

Forced Assignment

If your programming needs call for multiple operations in one statement, you may use the forced assignment operator :=. The example below assigns the value of 5 to x and then compares the value of x (which is now 5) to the value of 2:

00010 if (x:=5) > 2 then print "The forced-assigned value is larger than 2"

Note that when this assignment operator is used in any expression (for example: in the condition of an IF THEN statement), parentheses must be used to clarify the order of execution Otherwise, unexpected results may occur.

IMPORTANT NOTE: when the equal sign is used in an If statement, it is NOT used for assignment. Instead, it is used for comparison. Consider the example below:

00010 let x = 1    ! assignment takes place
00020 let y = 1000 ! assignment takes place
00030 if x = y then print "1 is equal to 1000" ! assignment DOES NOT takes place

In the above example, assignment DOES NOT takes place, instead the IF statement evaluates to FALSE and the print statement DOES NOT execute.


IMPORTANT NOTE: when the equal sign is used in an If statement, it is equivalent to using two equal signs ==. So the above example is identical in effect to the one below:

00010 let x = 1    ! assignment takes place
00020 let y = 1000 ! assignment takes place
00030 if x == y then print "1 is equal to 1000" ! assignment DOES NOT takes place

For clarity, it may be better to use == for comparison.



IMPORTANT NOTE: when the forced assignment operator := is used in an If statement, it is used for forced assignment, not for comparison. Consider the example below:

00010 let x = 1
00020 if x:=2 then print "forced assignment as a condition of an if statement always evaluates to true"