Another thing computers are good at is making unbiased decisions. In B2C this is implemented with the If statement. The If statement has a conditional followed by the Then clause:
if [conditional] then 'statements end if if a < b then print "a is smaller" end if
This conditional has a left side and a right side with a relational operator in between. You can compare two variables, or two expressions. There are 6 relational operations:
< less than > greater than <= less than or equal to >= greater than or equal to = equal to <> not equal to
For example:
if a+1 < b*2 then 'statements end if
There is also an Else statement, which indicates what to do if the conditional is not met:
if [conditional] then 'statements else 'else statements end if if a<b then print "a is smaller" else print "b is smaller" end if
If you inspect our last example closely you will see an error in the logic. The error occurs when a is equal to b. In this case our example will print "b is smaller" which is of course incorrect. To correct this we have the Elseif statement. It works just like the If statement and is executed only when the if part is false.
if [conditional] then 'statement elseif [conditional] then 'elseif statements else 'else statements endif if a<b then print "a is smaller" elseif b<a then print "b is smaller" else print "a and b are equal" end if
You may have as many Else if statements as you like, and you may have as many statements in the if/elseif/else clauses as you like. Again. it is good practice to indent the statements to show which statements belong to which if/elseif/else clauses.
Combining Conditionals
The result of the relational operators (<,>,<=,>=,=,<>) is either TRUE or FALSE. This type of value is called Boolean (named for the mathematician George Boole). Booleans are either True or False (one or zero). These types of results can be combined with the Boolean operators AND and OR. You can even negate the conditional with the NOT operator.
The And operator results in a TRUE value if BOTH of the inputs are TRUE (and results in a FALSE otherwise). The Or operator results in a TRUE value if EITHER of the inputs are TRUE. In B2C, a zero value is FALSE and any other value is considered TRUE. NOT converts a TRUE result into a FALSE result.
if a<b and b<c then print "b is between a and c" end if if a>b or a>c then print "a is bigger than either b or c" end if a=1 b=0 if a and b then print "both a and b are true" end if if a or b then print "either a or b is true" end if
Example program:
DO THIS |
Copy the file "c:\ \B2Cv5\tutorial\ch10.b2c" to "C:\ \B2Cv5\ch10.b2c". Then execute the command "build ch10.b2c". Download the ch10.app file to the cybiko. |
Conditionals
will allow us to assign a letter grade to the input grades and the average
' chapter 10 example program ' sum and average of n grades ' grades are from 0-100 dim sum 'this variable will store the sum of the n grades dim avg 'this variable will store the average of the n grades dim n as int ' the number of grades to average print "How many grades?" input n dim grade[n] ' an array of n grades ' ---INPUT --- for i=0 to n-1 'get the inputs print "Enter grade ", i ' notice that we indent in loops input grade[i] 'get the grades from the student next '--- PROCESS --- ' compute the sum and the average for i=0 to n-1 if grade[i] >=94 then print grade[i], "=A" elseif grade[i]>=86 then print grade[i],"=B" elseif grade[i]>=78 then print grade[i], "=C" elseif grade[i]>=70 then print grade[i], "=D" else print grade[i], "=F" end if sum = sum + grade[i] 'notice we accumulate the sum next avg = sum/n '--- OUTPUT --- print "The average of your", print n, " grades is ", avg if avg >=94 then print avg, "=A" elseif avg>=86 then print avg, "=B" elseif avg>=78 then print avg, "=C" elseif avg>=70 then print avg, "=D" else print avg, "=F" end if print "Press <Enter> to continue" dim tmp ' a temporary variable input tmp 'wait for the user to press enter |