A Secure and Reliable Document Management System is Essential.docx
Ā
The Ring programming language version 1.9 book - Part 27 of 210
1. Ring Documentation, Release 1.9
ā¢ Switch Statement
Syntax:
switch Expression {
case Expression
Block of statements
else
Block of statements
}
Example:
Load "stdlib.ring"
print("
Main Menu
---------
(1) Say Hello
(2) About
(3) Exit
")
nOption = GetString()
switch nOption {
case 1
print("Enter your name : ")
name = getstring()
print("Hello #{name}n")
case 2
print("Sample : using switch statementn")
case 3
Bye
else
print("bad option...n")
}
24.2 Looping
ā¢ While Loop
Syntax:
while Expression {
Block of statements
}
Example:
Load "stdlib.ring"
While True {
print("
Main Menu
---------
24.2. Looping 229
2. Ring Documentation, Release 1.9
(1) Say Hello
(2) About
(3) Exit
")
nOption = GetString()
switch nOption {
case 1
print("Enter your name : ")
name = getstring()
print("Hello #{name}n")
case 2
print("Sample : using switch statementn")
case 3
Bye
else
print("bad option...n")
}
}
ā¢ For Loop
Syntax:
for identifier=expression to expression [step expression] {
Block of statements
}
Example:
# print numbers from 1 to 10
load "stdlib.ring"
for x = 1 to 10 {
print("#{x}n")
}
Example:
load "stdlib.ring"
# Dynamic loop
print("Start : ") nStart = getnumber()
print("End : ") nEnd = getnumber()
print("Step : ") nStep = getnumber()
for x = nStart to nEnd step nStep {
print("#{x}n")
}
Example:
load "stdlib.ring"
# print even numbers from 0 to 10
for x = 0 to 10 step 2 {
print("#{x}n")
}
24.2. Looping 230
3. Ring Documentation, Release 1.9
Example:
load "stdlib.ring"
# print even numbers from 10 to 0
for x = 10 to 0 step -2 {
print("#{x}n")
}
ā¢ For in Loop
Syntax:
for identifier in List/String [step expression] {
Block of statements
}
Example:
load "stdlib.ring"
aList = 1:10 # create list contains numbers from 1 to 10
for x in aList { print("#{x}n") } # print numbers from 1 to 10
Example:
load "stdlib.ring"
aList = 1:10 # create list contains numbers from 1 to 10
# print odd items inside the list
for x in aList step 2 {
print("#{x}n")
}
When we use (For in) we get items by reference.
This means that we can read/edit items inside the loop.
Example:
load "stdlib.ring"
aList = 1:5 # create list contains numbers from 1 to 5
# replace list numbers with strings
for x in aList {
switch x {
case 1 x = "one"
case 2 x = "two"
case 3 x = "three"
case 4 x = "four"
case 5 x = "five"
}
}
print(aList) # print the list items
24.3 Exceptions
24.3. Exceptions 231
5. CHAPTER
TWENTYFIVE
GETTING INPUT
We can get input from the keyboard using
ā¢ The Give Command
ā¢ The GetChar() Function
ā¢ The Input() Function
25.1 Give Command
Syntax:
Give VariableName
Example:
See "Enter the first number : " Give nNum1
See "Enter the second number : " Give nNum2
See "Sum : " + ( 0 + nNum1 + nNum2 )
Output:
Enter the first number : 3
Enter the second number : 4
Sum : 7
25.2 GetChar() Function
We can get one character from the standard input using the GetChar() function
Syntax:
GetChar() ---> Character
Example:
While True
See "
Main Menu
(1) Say Hello
(2) Exit
"
Option = GetChar()
233
6. Ring Documentation, Release 1.9
GetChar() GetChar() # End of line
# the previous two lines can be replaced with the next line
# Give Option
if Option = 1
see "Enter your name : " give cName
see "Hello " + cName
else
bye
ok
End
25.3 Input() Function
We can get input from the keyboard using the Input() function
Syntax:
Input(nCount) ---> string
The function will wait until nCount characters (at least) are read
Example:
See "Enter message (30 characters) : " cMsg = input(30)
See "Message : " + cMsg
25.3. Input() Function 234
7. CHAPTER
TWENTYSIX
FUNCTIONS - FIRST STYLE
In this chapter we are going to learn about the next topics :-
ā¢ Deļ¬ne functions
ā¢ Call functions
ā¢ Declare parameters
ā¢ Send parameters
ā¢ Main Function
ā¢ Variables Scope
ā¢ Return Value
ā¢ Recursion
26.1 Deļ¬ne Functions
To deļ¬ne new function
Syntax:
func <function_name> [parameters]
Block of statements
Note: No keyword is required to end the function deļ¬nition.
Example:
func hello
see "Hello from function" + nl
26.2 Call Functions
To call function without parameters, we type the function name then ()
Tip: We can call the function before the function deļ¬nition and the function code.
Example:
235
8. Ring Documentation, Release 1.9
hello()
func hello
see "Hello from function" + nl
Example:
first() second()
func first see "message from the first function" + nl
func second see "message from the second function" + nl
26.3 Declare parameters
To declare the function parameters, after the function name type the list of parameters as a group of identiļ¬ers separated
by comma.
Example:
func sum x,y
see x+y+nl
26.4 Send Parameters
To send parameters to function, type the parameters inside () after the function name
Syntax:
funcname(parameters)
Example:
/* output
** 8
** 3000
*/
sum(3,5) sum(1000,2000)
func sum x,y see x+y+nl
26.5 Main Function
Using the Ring programming language, the Main Function is optional, when itās deļ¬ned, it will be executed after the
end of other statements.
if no other statements comes alone, the main function will be the ļ¬rst entry point
Example:
26.3. Declare parameters 236
9. Ring Documentation, Release 1.9
# this program will print the hello world message first then execute the main function
See "Hello World!" + nl
func main
see "Message from the main function" + nl
26.6 Variables Scope
The Ring programming language uses lexical scoping to determine the scope of a variable.
Variables deļ¬ned inside functions (including function parameters) are local variables. Variables deļ¬ned outside func-
tions (before any function) are global variables.
Inside any function we can access the variables deļ¬ned inside this function beside the global variables.
Example:
# the program will print numbers from 10 to 1
x = 10 # x is a global variable.
func main
for t = 1 to 10 # t is a local variable
mycounter() # call function
next
func mycounter
see x + nl # print the global variable value
x-- # decrement
Note: Using the main function before the for loop declare the t variable as a local variable, Itās recommended to use
the main functions instead of typing the instructions directly to set the scope of the new variables to local.
26.7 Return Value
The function can return a value using the Return command.
Syntax:
Return [Expression]
Tip: the Expression after the return command is optional and we can use the return command to end the function
execution without returning any value.
Note: if the function doesnāt return explicit value, it will return NULL (empty string = āā ).
Example:
26.6. Variables Scope 237
10. Ring Documentation, Release 1.9
if novalue() = NULL
See "the function doesn't return a value" + nl
ok
func novalue
26.8 Recursion
The Ring programming language support Recursion and the function can call itself using different parameters.
Example:
see fact(5) # output = 120
func fact x if x = 0 return 1 else return x * fact(x-1) ok
26.8. Recursion 238