# Control Structures - Third Style¶

In this chapter we are going to learn about the third style of control structures provided by the Ring programming language.

## Branching¶

• If Statement

Syntax:

```if Expression {
Block of statements
elseif Expression
Block of statements
else
Block of statements
}
```

Example:

```print("
---------
(1) Say Hello
(3) Exit
")

nOption = getnumber()

if nOption = 1  {
name = getstring()
print("Hello #{name}\n")
elseif nOption = 2
print("Sample : using if statement\n")
elseif nOption = 3
bye
else
}
```
• Switch Statement

Syntax:

```switch Expression {
case Expression
Block of statements
else
Block of statements
}
```

Example:

```print("
---------
(1) Say Hello
(3) Exit

")

nOption = GetString()

switch nOption {
case 1
name = getstring()
print("Hello #{name}\n")
case 2
print("Sample : using switch statement\n")
case 3
Bye
else
}
```

## Looping¶

• While Loop

Syntax:

```while Expression {
Block of statements
}
```

Example:

```While True {

print("
---------
(1) Say Hello
(3) Exit

")

nOption = GetString()

switch nOption {
case 1
name = getstring()
print("Hello #{name}\n")
case 2
print("Sample : using switch statement\n")
case 3
Bye
else
}

}
```
• For Loop

Syntax:

```for identifier=expression to expression [step expression] {
Block of statements
}
```

Example:

```# print numbers from 1 to 10
for x = 1 to 10  {
print("#{x}\n")
}
```

Example:

```# 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:

```# print even numbers from 0 to 10
for x = 0 to 10 step 2 {
print("#{x}\n")
}
```

Example:

```# 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:

```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:

```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:

```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
```

## Exceptions¶

```try {
Block of statements
catch
Block of statements
}
```