fb_controls
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
fb_controls [2022/12/03 22:57] – praetor | fb_controls [2022/12/04 01:27] (current) – [Bitwise Operators] praetor | ||
---|---|---|---|
Line 2: | Line 2: | ||
Control structures are statements that modify the running state of your program - that is, they turn your program into a **state machine** and allows it to perform logical decisions. Your program can be in a different state depending on various conditions. For instance, **if** you're hungry **then** you are empty, but if you eat, you are full. **Or** if you're **not** hungry or empty, then you are something else that is not defined. Notice how the state can change depending on the conditions that are set. We call these **conditionals** and they impart intelligent logic into our programs. | Control structures are statements that modify the running state of your program - that is, they turn your program into a **state machine** and allows it to perform logical decisions. Your program can be in a different state depending on various conditions. For instance, **if** you're hungry **then** you are empty, but if you eat, you are full. **Or** if you're **not** hungry or empty, then you are something else that is not defined. Notice how the state can change depending on the conditions that are set. We call these **conditionals** and they impart intelligent logic into our programs. | ||
- | In FreeBASIC, as well as other programming languages, there are two types of control structures. | + | In FreeBASIC, as well as other programming languages, there are three types of control structures. |
* Decision Making Structures - makes a series of decisions using **if, | * Decision Making Structures - makes a series of decisions using **if, | ||
Line 27: | Line 27: | ||
| >= | Greater than or equal to | | | >= | Greater than or equal to | | ||
- | ==== Bitwise Operators ==== | + | ===== Bitwise Operators |
^Operator^ | ^Operator^ | ||
| AND | | | AND | | ||
Line 60: | Line 60: | ||
</ | </ | ||
create a variable called myName as we learned from the previous section | create a variable called myName as we learned from the previous section | ||
+ | |||
<code freebasic> | <code freebasic> | ||
- | input " | + | input " |
</ | </ | ||
+ | //input// is a new keyword that asks the user for input and stores it in a variable, myName in this case. | ||
+ | |||
+ | <code freebasic> | ||
+ | if myName = " | ||
+ | print "Ave Praetor!" | ||
+ | </ | ||
+ | **if** myName is " | ||
+ | |||
+ | <code freebasic> | ||
+ | else | ||
+ | print "You are not praetor" | ||
+ | end if | ||
+ | </ | ||
+ | **if** myName is anything **else** besides " | ||
+ | |||
+ | But notice if you tell your program your name is " | ||
+ | |||
+ | <code freebasic> | ||
+ | if ucase(myName) = " | ||
+ | </ | ||
+ | |||
+ | But what if you want it to match it exactly? This requires **regular expressions** which matches a string against a format. Regular expressions are out of the scope of this beginner' | ||
+ | |||
+ | What if you have many things you wish to test? Well you can do that with the **elseif** statement, like so: | ||
+ | |||
+ | <code freebasic> | ||
+ | if Ucase(myName) = " | ||
+ | print "Ave Praetor!" | ||
+ | elseif Ucase(myName = " | ||
+ | print "Howdy SMJ!" | ||
+ | else | ||
+ | print "I don't know you" | ||
+ | end if | ||
+ | </ | ||
+ | |||
+ | You can have as many **elseif** statements as you wish, and while you don't necessarily need an **else** statement, it is considered good form to have one to catch any unknowns a user may have. You'll see why when we discuss functions and subroutines. | ||
+ | |||
+ | We can also use bitwise operators like **AND**, or **OR** to test multiple things as well. Like such. | ||
+ | |||
+ | <code freebasic> | ||
+ | if Ucase(myname) = " | ||
+ | print "I know you!" | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | **OR** states that if myName is either PRAETOR or SMJ, then the condition is true. |
fb_controls.txt · Last modified: 2022/12/04 01:27 by praetor