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:
'''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:
Line 34: Line 35:


In the above example, assignment DOES NOT takes place, instead the IF statement evaluates to FALSE and the '''print''' statement DOES NOT execute.
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:
'''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:
Line 42: Line 44:


For clarity, it may be better to use '''==''' for comparison.
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:
'''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:

Revision as of 17:28, 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"