Assignment Operations: Difference between revisions
(edit) |
(edit) |
||
Line 1: | Line 1: | ||
There are two assignment | There are two assignment operations 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. | They are similar in how they work with a slight difference. | ||
Both of them are [[Binary | Both of them are [[Binary operations]], which means they take two arguments - one on the left, and another one on the right. | ||
[[Numeric]] and [[String]] [[Variable|variables]] both may be used with regular and forced assignment | [[Numeric]] and [[String]] [[Variable|variables]] both may be used with regular and forced assignment operations. | ||
===Regular Assignment=== | ===Regular Assignment=== | ||
Line 17: | Line 17: | ||
00010 let 5 = x ! incorrect | 00010 let 5 = x ! incorrect | ||
The disadvantage of the equal sign assignment | The disadvantage of the equal sign assignment operation '''=''' is that it may only be used as a separate statement. | ||
===Forced Assignment=== | ===Forced Assignment=== | ||
If your programming needs call for multiple operations in one statement, you may use the '''forced assignment''' | If your programming needs call for multiple operations in one statement, you may use the '''forced assignment''' operation ''':='''. 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" | 00010 if (x:=5) > 2 then print "The forced-assigned value is larger than 2" | ||
'''Note''' that when this assignment | '''Note''' that when this assignment operation 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. | ||
Line 46: | Line 46: | ||
'''IMPORTANT NOTE:''' when the '''forced assignment | '''IMPORTANT NOTE:''' when the '''forced assignment operation :=''' is used in an [[If]] [[statement]], it is used for '''forced assignment, not for comparison.''' Consider the example below: | ||
00010 let x = 1 | 00010 let x = 1 | ||
Line 53: | Line 53: | ||
<noinclude> | <noinclude> | ||
[[Category: | [[Category:operations]] | ||
</noinclude> | </noinclude> |
Revision as of 17:43, 10 January 2012
There are two assignment operations 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 operations, 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 operations.
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 operation = 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 operation :=. 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 operation 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 operation := 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"