Resources For IT Professionals
United States (English) # Small Basic Curriculum: Lesson 1.4: Conditions and Loops

Small BasicOnline > Lesson 1.4: Conditions and Loops

Estimated time to complete this lesson: 2 hours

### Conditions and Loops

In this lesson, you will learn how to:

• Write programs that carry out different instructions based on whether one or more logical conditions are true.
• Write programs that repeat instructions until a specific event occurs.

### Conditions in Small Basic Programs

Would you like to specify conditions that control how your program runs (or whether it runs at all)?

Let’s look at the following program:

``````If Clock.Day = 1 And Clock.Month = 1 Then
TextWindow.WriteLine("Happy New Year")
EndIf``````

This program instructs the computer to display "Happy New Year" only if today is January 1st.

Notice that this program contains the If,Then, and EndIf keywords.

In Small Basic, you use the Clock object to determine the current date and time.

You use the If keyword to specify a condition that the computer evaluates to determine whether it should perform a particular operation. You use the Then keyword to specify what operation or operations the computer should perform if the condition is true. If the condition is false, the computer skips the operation or operations and proceeds to the next line of the program. You use the EndIf keyword to indicate that the computer should proceed to the next line of the program regardless of whether the condition was true.

In this example, you use the If keyword specify the condition that today is the first day of the first month of the year (January). You use the Then keyword to specify that, if today is the first day of the first month, the computer should run the WriteLine operation. If today is not the first day of the first month, the computer should skip the operation and proceed to the EndIf line of the program.

Now, let’s write a program in which you specify an alternate action to perform if the condition is false.

``````If Clock.Hour < 12 then
EndIf
If Clock.Hour > 12 then
EndIf``````

Depending on when you run the program, the computer displays one of the following results:  In programming, you can do that same thing in more than one way. As a programmer, you can choose the best way.

In this example, you might have noticed that the second condition in the program repeats a lot of information in the first condition.

``````If Clock.Hour < 12 then
EndIf
If Clock.Hour > 12 then
EndIf``````

Let’s reduce the repetition by using the Else keyword.

``````If Clock.Hour < 12 Then
Else
EndIf``````

Both programs give the same result, but you can use fewer If, Then, and EndIf keywords if you use the Else keyword.

In this program, you specify a condition and an operation to perform if that condition is true. Then you specify a second condition and a second operation to perform if the second condition is true. However, the first condition is true only if the second condition is false, and the second condition is true only if the first condition is false. Therefore, you don’t need to specify the second condition because the computer can determine which operation to perform based only on the first condition. Instead of giving the computer two conditions to evaluate, you can specify that the computer should perform the first operation if the first condition is true and the computer should perform the second operation if the first condition is false.

The result of both approaches is the same. This example shows that you can do the same thing in different ways in programming. It’s up to you!

Let’s look at another example…

You are writing a complex program, and you want to check whether the user typed an even number or an odd number.

``````TextWindow.Write("Enter a number: ")
remainder = Math.Remainder(number, 2)
If remainder = 0 Then
TextWindow.WriteLine("The number is even.")
Else
TextWindow.WriteLine("The number is odd.")
EndIf``````

This is the output you will see: Notice the use of If, Then, Else, and EndIf in the program.

In this program, you first ask the user for a number. Then you create a variable to store the number, and you use the ReadNumber operation to determine what number the user specified.

Next, you create a variable to store the remainder after you divide the user’s number by 2, and you use the Math.Remainder operation to determine whether the remainder is 0.

Finally, you specify that the number is even if the remainder is 0 and that the number is odd if the remainder is not 0.

When you write a program, you can specify as many conditions as you want by using the ElseIf keyword. You can also specify one or more operations for the computer to perform, depending on which condition is true when your program is run.

Let’s look at this with an example.

``````TextWindow.WriteLine("What is the current temperature in degrees Celsius? ")
If temp <= 5 Then
TextWindow.WriteLine("It’s very cold today.")
ElseIf temp <= 15 Then
TextWindow.WriteLine("It’s cool today.")
ElseIf temp <= 25 Then
TextWindow.WriteLine("It’s warm today.")
Else
TextWindow.WriteLine("It’s quite hot today.")
EndIf``````

This is the output you will see: In this example, each condition contains a unique statement that the computer evaluates. When the computer evaluates a statement as true, the computer performs the operation for that condition and then proceeds to the end.

### Loops in Small Basic Programs

• You can use a loop to instruct the computer to run one or more statements more than once.
• You can use a For loop if you know how many times you want the computer to repeat the instructions.
• You can use a While loop if you want the program to repeat the instructions until a specific condition is true.

So, let��s explore some loop statements…

Let’s start by writing a program that contains a For..EndFor loop.

In general, you use a For..EndFor loop to run code a specific number of times. To manage this type of loop, you create a variable that tracks how many times the loop has run.

``````For a = 1 to 10
TextWindow.WriteLine(a)
EndFor``````

In this example, the variable contains a value that increases by 1 every time that the loop runs.

Click the button on the Toolbar.

This is the output you will see: Let’s use this concept to print the multiplication table for the number 5.

``````TextWindow.WriteLine("Multiplication Table")
number = 5
For a = 1 to 10
TextWindow.WriteLine(a + " x " + number + " = " + a * number)
EndFor``````

This is the output you will see: In this program, you first use the WriteLine operation to display "Multiplication Table" on the screen.

Then you create the variable “number” to store the value of 5.

Then you create a For loop with the variable “a” to ensure the WriteLine operation will run 10 times.

You use the WriteLine operation to display the following elements in this order:

--the value that is stored in the “a” variable

--the multiplication sign

--the value that is stored in the “number” variable

--the equals sign

--the products of the values of the “a” and “number” variables

In the previous example, the value of the counter variable in a For loop increases by 1 every time the loop runs. However, you can increase the value by another number if you  use the Step keyword.

For example, you can increase the value by 2 if you write the following code:

``````TextWindow.WriteLine("Multiply odd numbers by 5:")
number = 5
For a = 1 to 10 Step 2
TextWindow.WriteLine(a + " x " + number + " = " + a * number)
EndFor``````

This is the output you will see: You can even decrease the value of the loop variable every time that the code runs if you use the Step keyword but specify a negative number. For example, you can write a program that counts backward from 10 to 1 on the screen if you assign the value of -1 to the Step keyword.

If you don’t know the loop count before you write a program, you can create a While loop instead of a For loop.

When you create a While loop, you specify a condition that is true when the loop starts. But the computer evaluates the condition every time that the loop repeats. When the condition becomes false, the loop stops.

Let’s write the following program to demonstrate the While loop:

``````a  = 10
While (a <= 100)
TextWindow.WriteLine(a)
a = a +10
EndWhile``````

This is the output you will see: In this example, you first create the “a” variable and set its value to 10.

Next, you create a While loop with a condition that the value of the “a” variable is smaller than or equal to 100. Because you just set the value of that variable to 10, the condition is true when the loop starts.

You use the WriteLine operation to display the value of the “a” variable every time that the loop runs.

In the next statement, you increase the value of the “a” variable by 10 every time that the loop runs.

The loop stops after it runs 10 times because the value of the “a” variable becomes larger than 100.

### Let’s Summarize…

Congratulations!

Now you know how to:

• Write programs that evaluate logical conditions and perform operations based on those results.
• Write programs that repeat one or more instructions either a specific number of times or based a logical condition.

### Show What You Know

Create a program to convert one or more student scores from a percentage to a letter grade. First, ask the user to specify how many grades will be calculated. Then ask the user to specify the first percentage, and convert it to a letter grade based on the following criteria:

• If the percentage is less than 75 but more than or equal to 60, convert it to a
• If the percentage is less than 60 but more than or equal to 35, convert it to a
• If the percentage is less than 35, convert it to a D.
• Then ask the user to specify the first percentage, and convert it to a letter grade based on the following criteria:

To see the answers to these questions, go to the Answer Key page.

Next Lesson