Estimated time to complete this lesson: 2 hours
In this lesson, you will learn how to:
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 TextWindow.WriteLine("Did you have your breakfast?") EndIf If Clock.Hour > 12 then TextWindow.WriteLine("Did you have your lunch?") 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.
Let’s reduce the repetition by using the Else keyword.
If Clock.Hour < 12 Then TextWindow.WriteLine("Did you have your breakfast?") Else TextWindow.WriteLine("Did you have your lunch?") 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: ") number = TextWindow.ReadNumber() 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? ") temp = TextWindow.Read() 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
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.
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.
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
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
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
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.
Congratulations!
Now you know how to:
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:
To see the answers to these questions, go to the Answer Key page.
Next Lesson
Ed Price - MSFT edited Revision 3. Comment: PPD section