210 likes | 380 Views
Engineering 1020. Introduction to Programming Peter King peter.king@mun.ca www.engr.mun.ca/~peter Winter 2010. ENGI 1020: Update. Midterm Date: Feb 17 th (unchanged) Time: 7pm to 8:15pm This is the same as all other core courses Location: To Be Announced. ENGI 1020: Control Statements.
E N D
Engineering 1020 Introduction to Programming Peter King peter.king@mun.ca www.engr.mun.ca/~peter Winter 2010
ENGI 1020: Update • Midterm • Date: Feb 17th (unchanged) • Time: 7pm to 8:15pm • This is the same as all other core courses • Location: To Be Announced
ENGI 1020: Control Statements • Up to now all our programming has followed the following flow: • Start program at main • Execute each instruction once • For instructions that are function calls, • go to the function declaration and start at first instruction • When instruction is finished, go to next instruction
ENGI 1020: Control Statements • How can we solve problems like • Given two numbers, return the largest one • Find the square root of a number, but only when it's greater than zero • Given a person's age, output whether they are a child, teenager, adult, or senior • Given the distance to a wall, tell a robot to stop when it is less than 4m from a wall
ENGI 1020: Control Statements • We need to enable the program to make “decisions” • Or more formally • Depending on some condition(s), execute alternative sections of code • At some point in the code, we will choose to execute one block, instead of another
ENGI 1020: Control Statements • How is this done you ask? • The If statement • “if the door is locked, I will get a key” • “if traffic is bad, I will walk to work” • “if it's later than 9pm, I will go home”
ENGI 1020: Control Statements • You've all probably seen this: CheckBank Account Have more than $10k? Buy Car Get Job
ENGI 1020: Control Statements • This is an if statement • Depending on some condition, we will take a particular path Have more than $10k?
ENGI 1020: Control Statements • Let's see it in C++ • If (some condition) do something • if (some condition){ do something do something … … do something }
ENGI 1020: Control Statements • Example if (x > 0) cout << “x is positive.” << endl; if (x < 0){ cout << “ x is negative.” cout << endl; }
ENGI 1020: Control Statements • The if is a keyword • The ( condition ) is an expressions that is evaluated as either true or false • x > 0 • y != 5 • z == 2*y • When the condition is true, the statement (or block of statements) are executed • If not true, then the statements are ignored
ENGI 1020: Control Statements • Lets look at the conditions • They are boolean expressions • They are evaluated to either true or false • We can utilize multiple conditions using the • && → and operator • || → or operator • If x is greater than 5 and y is less than 2, proceed • If (x > 5 && y < 2) • proceed();
ENGI 1020: Control Statements • What if we want to select one or the other statements, based on a single condition? • “IF there is any 7-up, I'll have that, else I'll have a Sprite”
ENGI 1020: Control Statements • The if-else statement • Picks between two alternatives if (x >0) • Cout << “x is positive” << endl; else • Cout << “x is negative” << endl;
ENGI 1020: Control Statements • Or • Since we know only one of the statements will get executed if (x >0) • Cout << “x is positive”; else • Cout << “x is negative”; cout << endl;
ENGI 1020: Control Statements • If the condition is true • We execute under the if • If the condition is not true (false) • We execute under the else
ENGI 1020: Control Statements • We can also nest our if statements • What does that mean? • If time is later than 12pm and earlier than 1pm, eat lunch if (time > 12){ If (time < 13){ eatLunch(); } }
ENGI 1020: Control Statements • Statement blocks after the if can contain any valid code, even other if statements
ENGI 1020: Control Statements • One more variation • Instead of doing this if (x < 1) doThis(); else if(x <2) DoThat(); else if(x <3) DoSomething();
ENGI 1020: Control Statements • We can do this if (x < 1) dothis(); else if(x < 2) doThat(); else if(x < 3) doSomthing(); else doNothing();
ENGI 1020: Control Statements • Grading Examples