Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 4 Conditional Statements. A Programmer's Lament I really hate this damned machine; I wish that they would sell it It never does quite what I want.

Similar presentations


Presentation on theme: "Chapter 4 Conditional Statements. A Programmer's Lament I really hate this damned machine; I wish that they would sell it It never does quite what I want."— Presentation transcript:

1 Chapter 4 Conditional Statements

2 A Programmer's Lament I really hate this damned machine; I wish that they would sell it It never does quite what I want but only what I tell it. Dennie L Van Tassel, The Compleat Computer

3 Conditional Statements Consider: if the mouse location is contained in the rectangle, display message “success” Some programming constructs can choose between blocks of code to execute

4 A Vote Counting Example Complete source code

5 Code to Update Votes: // Update votes and display vote counts public void onMouseClick( Location point ) { if ( point.getX() < MID_X ) { countA++; infoA.setText( "So far there are " + countA + " vote(s) for A." ); } else { countB++; infoB.setText( "So far there are " + countB + " vote(s) for B." ); }

6 Syntax of the if Statement The condition is evaluated. If true, the bracketed code following if is executed; otherwise, the bracketed code after else is executed if (condition) { //do something } else { //do something else } The else part can be omitted if (condition) { //do something here }

7 if if-else

8 if Statement and 2D Objects To check if the mouse is within a 2D object: public void onMouseClick ( Location point ) { if ( anObject.contains ( point ) ) { //do something here }

9 Comparison Operators OperatorDescription >Greater than <Less than ==Equal to <=Less than or equal to >=Greater than or equal to !=Not equal to

10 Examples If a=25, b=30 a<b evaluates to true a<=b evaluates to true a==b evaluates to false a!=b evaluates to true a>b evaluates to false a>=b evaluates to false 4 < 3 false 2 == 2 true Since these expressions are evaluated to either true or false, they are called boolean expressions

11 The boolean Data Type A data type that has only two values: true or false Can be declared with the word boolean Ex:boolean a=true; //holds the value true boolean b=c>d; //holds the result of c > d boolean k; //creates k, which can take on true or false

12 Dragging a Box //boolean variable to determine whether the box is grabbed private boolean boxGrabbed; // Save starting point and whether point was in box public void onMousePress( Location point ) { lastPoint = point; boxGrabbed = box.contains( point ); } // if mouse is in box, then drag the box public void onMouseDrag( Location point ) { if ( boxGrabbed ) { box.move( point.getX() - lastPoint.getX(), point.getY() - lastPoint.getY() ); lastPoint = point; } Complete source code

13 More Uses of The if else Statement Picks one choice among many EX:Converting a score into a letter grade if ( score >= 90 ) { gradeDisplay.setText( "The grade is A" ); } else if ( score >= 80 ) { gradeDisplay.setText( "The grade is B" ); } else if ( score >= 70 ) { gradeDisplay.setText( "The grade is C" ); } else { gradeDisplay.setText( "No credit is given"); }

14 Combining Multiple Conditionals && (and) combines adjoining conditions in a way that the final result will be true only if all are true Ex: a && b && c is true if a,b,c are true || (or) combines adjoining conditions in a way that if any of them is true, the final result will be true Ex: a || b || c is true if any of a, b, c, is true ! (not) negates the value of a boolean (true  false)

15 Logical Operators && (and) –true only when both sides are true || (or) –true whenever one or both are true ! (not) – makes false -> true and true -> false

16 Examples using && broom.overlaps(goal) && box.overlaps(goal) –The broom overlaps both goals at same time (3<4) && ( 4<5) true (3>4) && ( 4<5) false (3>4) && ( 4>5) false

17 Examples Using || box.overlaps( goal1 ) || box.overlaps(goal2) –box overlaps either goal1 or goal2 (3<4) || ( 4<5) true (3>4) || ( 4<5) true (3>4) || ( 4>5) false

18 Examples using ! ! broom.overlaps(goal) –The broom does not overlap the goal !(3>4) !false = true

19 Order of Operations for Boolean Logic 1.Parentheses ( ) 2.Relational ops, =,!=,== 3.! 4.&& 5.|| This order is applied in processing complex expressions Parts at the same level are handled left to right

20 Example EXAMPLE: suppose x=3 y=10 z=20 Evaluate !( x x) ! (3 3) first, plug in values for variables ! true || true second, evaluate parentheses false || true third, apply ! to true to get false true last, or the false with true to get true

21 Processing a Big Logic Expression (3 10) || (3 == 3) || (3 > 6) && (4 == 2) T && F || T || F && F F || T || F T || F T

22 Random Number Generator private RandomIntGenerator rand; –rand is an object that spits out random values rand = new RandomIntGenerator(1,100); –Makes rand refer to a new RIG –Will produce values from 1 to 100 rand.nextValue(); –Gets a new random number from rand score = rand.nextValue(); –Stores the random value in an integer score box.moveTo(rand.nextValue(), rand.nextValue()); –Moves box to a new random location

23 The Craps Example A block of code that uses || (or) to determine whether the player wins a game of Craps if ( roll == 7 || roll == 11 ) { // 7 or 11 wins on first throw status.setText( "You win!" ); } else if ( roll == 2 || roll == 3 || roll == 12 ) { // 2, 3, or 12 loses status.setText( "You lose!" ); } else { // Set roll to be the point to be made status.setText( "Try for your point!" ); point = roll; … } Complete source code

24 Nesting Suppose we want to decide among several choices based on several conditions, such as shown by the table: To do this, we use conditionals inside a conditional. This is called nesting. SunnyNot sunny RichOutdoor ConcertIndoor Concert Not RichUltimate FrisbeeWatch TV

25 Nesting Example if ( ( sunny ) && (rich)) { activityDisplay.setText( "outdoor concert" ); } else if ((sunny) && (!rich) ){ // not rich activityDisplay.setText( "play ultimate" ); } else { // not sunny if ( rich ) { activityDisplay.setText( "indoor concert" ); } else { // not rich activityDisplay.setText( "watch TV" ); }

26 Creating a Game of Craps By adding an outer conditional, we can effectively determine whether the player wins: if ( newGame ) {//Starting a new game if ( roll == 7 || roll == 11 ) { // 7 or 11 wins on first throw status.setText( "You win!" ); } else if ( roll == 2 || roll == 3 || roll == 12 ) { // 2, 3, or 12 loses status.setText( "You lose!" ); } else { // Set roll to be the point to be made status.setText( "Try for your point!" ); point = roll; newGame = false; // no longer a new game } Complete source code


Download ppt "Chapter 4 Conditional Statements. A Programmer's Lament I really hate this damned machine; I wish that they would sell it It never does quite what I want."

Similar presentations


Ads by Google