| A | B |
| iterative | to repeat code |
| conditional branching | to choose and execute one or another fragment of code depending on the values of some variables or expression |
| conditional jumps | special CPU expressions that support conditional branching - it tests a certain condition and tells the CPU to jump to the specified instruction depending on result of test |
| IP | a register called the Instruction Pointer |
| CPU | Central Processing Unit |
| unconditional jump | instructions that tell the CPU to jump to a specified address in the program by unconditionally placing a new value into the IP |
| Boolean expressions | logical expressions |
| logical expressions | using relational and logical operators |
| Boolean Algebra | an algebraic system for describing operations on logical propositions |
| George Boole | introduced boolean algebra |
| compound statements | blocks inclosed in braces consisting of 2 or more statements |
| true is represented by | non-zero value |
| false is represented by | zero value |
| and | && |
| or | || |
| not | ! |
| DeMorgans Laws | !(p && q) == (!p || !q) and !(p || q) == (!p && !q) |
| short-circuit evaluation | if the value of the first operand in a binary logical operation unambiguously determines the result of the operation the second operand is not evaluated |
| bottom-up approach | implement the functions needed to complete the program and then write the main program |
| sequential flow of control during program execution can be altered by 4 types of control mechanisms called | function calls, iterative statements, conditional statements, switch statements |