Beruflich Dokumente
Kultur Dokumente
EIGHTEEN
OPERATORS
In this chapter we will introduce the operators provided by the Ring programming langauge.
The next table presents all of the arithmetic operators provided by the Ring language. Assume variable X=50 and
variable Y=10 then:
Operator Description Example Result
+ Add x+y 60
- Subtract x-y 40
* Multiplies x*y 500
/ Divide x/y 5
% Modulus x%y 0
++ Increment x++ 51
-- Decrement x- - 49
The next table presents all of the relational operators provided by the Ring language. Assume variable X=50 and
variable Y=10 then:
Operator Description Example Result
= Equal x=y False
!= Not Equal x != y True
> Greater than x>y True
< Less than x<y False
>= Greater or Equal x >= y True
<= Less than or Equal x <= y False
The next table presents all of the logical operators provided by the Ring language. Assume variable X=True and
variable Y=False then:
Operator Description Example Result
and Logical AND x and y False
or Logical OR x or y True
not Logical Not not x False
135
Ring Documentation, Release 1.5
The next table presents all of the bitwise operators provided by the Ring language. Assume variable X=8 and variable
Y=2 then:
Operator Description Example Result
& Binary AND x&y 0
| Binary OR x|y 10
^ Binary XOR x^y 10
~ Binary Ones Complement ~x -9
<< Binary Left Shift x << y 32
>> Binary Right Shift x >> y 2
The next table presents all of the assignment operators provided by the Ring language.
Assume variable X=8 then:
Operator Description Example Result
= Assignment x = 10 x=10
+= Add AND assignment x += 5 x=13
-= Subtract AND assignment x -= 3 x=5
*= Multiply AND assignment x *= 2 x=16
/= Divide AND assignment x /= 3 x=2.67
%= Modulus AND assignment x %= 2 x=0
<<= Left shift AND assignment x <<= 2 x=32
>>= Right shift AND assignment x >>= 2 x=2
&= Bitwise AND assignment x &= 4 x=0
|= Bitwise OR and assignment x |= 3 x=11
^= Bitwise XOR and assignment x ^= 4 x=12
Operator Description
:literal using : before identifier mean literal
Start:End create list contains items from start to end
[list items] define list items
list[index] access list item
obj.name using the dot operator to access object members (attributes/methods).
obj {stmts} execute statements with direct access to object attributes & methods
func(para,...) call function using parameters separated by comma
The next table present operators from higher precedence (Evaluated first) to lower precedence.
Operator
. [] () {}
- ~ :Literal [list items]
++ - -
Start:End
*/%
+-
<< >>
&
|^
< > <= >=
= !=
not
and or
Assignment = += -= *= /= %=>>= <<= &= ^= |=
Example:
See 3+5*4 # prints 23
NINETEEN
In this chapter we are going to learn about the control structures provided by the Ring programming language.
19.1 Branching
If Statement
Syntax:
if Expression
Block of statements
but Expression
Block of statements
else
Block of statements
ok
Example:
see "
Main Menu
---------
(1) Say Hello
(2) About
(3) Exit
if nOption = 1 see "Enter your name : " give name see "Hello " + name + nl
but nOption = 2 see "Sample : using if statement" + nl
but nOption = 3 bye
else see "bad option..." + nl
ok
Switch Statement
Syntax:
switch Expression
on Expression
Block of statements
other
Block of statements
off
138
Ring Documentation, Release 1.5
Example:
See "
Main Menu
---------
(1) Say Hello
(2) About
(3) Exit
Switch nOption
On 1 See "Enter your name : " Give name See "Hello " + name + nl
On 2 See "Sample : using switch statement" + nl
On 3 Bye
Other See "bad option..." + nl
Off
19.2 Looping
While Loop
Syntax:
while Expression
Block of statements
end
Example:
While True
See "
Main Menu
---------
(1) Say Hello
(2) About
(3) Exit
Switch nOption
On 1
See "Enter your name : "
Give name
See "Hello " + name + nl
On 2
See "Sample : using while loop" + nl
On 3
Bye
Other
See "bad option..." + nl
Off
End
For Loop
Syntax:
Example:
# print numbers from 1 to 10
for x = 1 to 10 see x + nl next
Example:
# Dynamic loop
See "Start : " give nStart
See "End : " give nEnd
See "Step : " give nStep
For x = nStart to nEnd Step nStep
see x + nl
Next
Example:
# print even numbers from 0 to 10
for x = 0 to 10 step 2
see x + nl
next
Example:
# print even numbers from 10 to 0
for x = 10 to 0 step -2
see x + nl
next
For in Loop
Syntax:
for identifier in List/String [step expression]
Block of statements
next
Example:
aList = 1:10 # create list contains numbers from 1 to 10
for x in aList see x + nl next # print numbers from 1 to 10
We can use the Step option with For in to skip number of items in each iteration
Example:
aList = 1:10 # create list contains numbers from 1 to 10
# print odd items inside the list
for x in aList step 2
see x + nl
next
Syntax:
do
Block of statements
again expression
Example:
x = 1
do
see x + nl
x++
again x <= 10
Example:
for x = 1 to 10
see x + nl
if x = 5 exit ok
next
The next example presents how to use the exit command to exit from two loops in one jump.
Example:
for x = 1 to 10
for y = 1 to 10
see "x=" + x + " y=" + y + nl
if x = 3 and y = 5
exit 2 # exit from 2 loops
ok
next
next
Example:
for x = 1 to 10
if x = 3
see "Number Three" + nl
loop
ok
see x + nl
next
While we are inside a loop, we can call a function then use the exit and/or loop command inside that function and the
command will work on the outer loop.
Example:
# print numbers from 1 to 10 except number 5.
for x = 1 to 10
ignore(x,5)
see x + nl
next
x = 0 y = 10
Example:
# No output
x = 0 y = 10
Example:
/* output
** nice
** great
*/
x = 0 y = 10
False = 0
nl = new line
NULL = empty string =
Everything evaluates to true except 0 (False).
Example:
# output = message from the if statement