Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 3 l Branching l Loops l exit(n) method l Boolean data type.

Slides:



Advertisements
Similar presentations
Branching Loops exit(n) method Boolean data type and expressions
Advertisements

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 4 – C Program Control Outline 4.1Introduction.
5-1 Flow of Control Recitation-01/25/2008  CS 180  Department of Computer Science  Purdue University.
Logical Operators Java provides two binary logical operators (&& and ||) that are used to combine boolean expressions. Java also provides one unary (!)
ITM352 Loops Lecture #6. 1/28/03ITM352 Fall 2003 Class 5 – Control Flow 2 Announcements r Lab class dates have changed!!! m Check the “Weekly Schedule”
Aalborg Media Lab 23-Jun-15 Software Design Lecture 6 “Conditionals and Loops”
Chapter 31 Flow of Control Chapter 3. 2 Reminders Project 1 was due last night Project 2 released: due Sept 10:30 pm - No Late Submissions Follow.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Control Structures Control structures control the flow of program execution. 3 types of control structures: sequence, selection.
Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 3 l Branching l Loops l exit(n) method l Boolean data type.
© 2004 Pearson Addison-Wesley. All rights reserved5-1 Iterations/ Loops The while Statement Other Repetition Statements.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 6: Repetition  Some additional operators increment and decrement.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Control Statements.
ECE122 L9: While loops March 1, 2007 ECE 122 Engineering Problem Solving with Java Lecture 9 While Loops.
CONTROL STATEMENTS Lakhbir Singh(Lect.IT) S.R.S.G.P.C.G. Ludhiana.
CONTROL STATEMENTS IF-ELSE, SWITCH- CASE Introduction to Computer Science I - COMP 1005, 1405 Instructor : Behnam Hajian
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
Chapter 3 Edited by JJ Shepherd
Flow of Control Module 3. Objectives Use Java branching statements Compare values of primitive types Compare objects such as strings Use the primitive.
Chapter 3 Selections Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved
Flow of Control Part 1: Selection
Making Decisions Chapter 5.  Thus far we have created classes and performed basic mathematical operations  Consider our ComputeArea.java program to.
ITM 352 Flow-Control: if and switch. ITM © Port, KazmanFlow-Control - 2 What is "Flow of Control"? Flow of Control is the execution order of instructions.
Lecture 4 – PHP Flow Control SFDV3011 – Advanced Web Development 1.
1 Week 6 Branching. 2 What is “Flow of Control”? l Flow of Control is the execution order of instructions in a program l All programs can be written with.
Flow of Control Chapter 3 Flow of control Branching Loops
Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 3 l Branching l Loops l exit(n) method l Boolean data type.
Introduction To Scientific Programming Chapter 3.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2009 Pearson Education, Inc., Upper.
Control Structures - Selections - Repetitions/iterations (part 2) 1 -Based on slides from Deitel & Associates, Inc. - Revised by T. A. Yang.
Flow of Control Chapter 3. Outline Branching Statements Java Loop Statements Programming with Loops The Type boolean.
Chapter 3 1 l Branching l Loops l exit(n) method l Boolean data type and logic expressions Flow of Control – Part 1.
Control Flow Computer Engineering Department Java Course Asst. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2014.
JAVA: An Introduction to Problem Solving & Programming, 7 th Ed. By Walter Savitch ISBN © 2015 Pearson Education, Inc., Upper Saddle River,
Control statements Mostafa Abdallah
Lecturer: Dr. AJ Bieszczad Chapter 3 COMP 150: Introduction to Object-Oriented Programming 3-1 l Branching l Loops l exit(n) method l Boolean data type.
Flow of Control: Loops Module 4. Objectives Design a loop Use while, do, and for in a program Use the for-each with enumerations Use assertion checks.
COMP Loop Statements Yi Hong May 21, 2015.
Chapter 2: Fundamental Programming Structures in Java Adapted from MIT AITI Slides Control Structures.
1 Week 9 Loops. 2 Repetition: Loops l Structure: »Usually some initialization code »body of loop »loop termination condition l Several logical organizations.
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Decisions and Iterations.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 2: Control Structures (Selection & Repetition)
C Program Control September 15, OBJECTIVES The essentials of counter-controlled repetition. To use the for and do...while repetition statements.
Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 3 l Branching l Loops l exit(n) method l Boolean data type.
Control Structures- Decisions. Smart Computers Computer programs can be written to make computers seem smart Making computers smart is based on decision.
Copyright © 2014 Pearson Addison-Wesley. All rights reserved. 4 Simple Flow of Control.
Chapter 4 – C Program Control
REPETITION CONTROL STRUCTURE
Chapter 5: Control Structures II
Loop Structures.
ITM 352 Flow-Control: if and switch
JavaScript: Control Statements.
ITM 352 Flow-Control: Loops
Branching Loops exit(n) method Boolean data type and expressions
Loops CS140: Introduction to Computing 1 Savitch Chapter 4 Flow of Control: Loops 9/18/13 9/23/13.
Control Structures – Selection
Chapter 4 - Program Control
3 Control Statements:.
Java Programming Control Structures Part 1
Chapter 6: Repetition Statements
Chapter 4: Control Structures I (Selection)
Web Programming– UFCFB Lecture 20
Boolean Expressions to Make Comparisons
Chapter 3 Selections Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved.
Chapter 4 - Program Control
Chap 7. Advanced Control Statements in Java
Announcements/Reminders
Announcements Program 1 due noon Lab 1 due noon
Presentation transcript:

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 3 l Branching l Loops l exit(n) method l Boolean data type and expressions Flow of Control

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 2 What is “Flow of Control”? l Flow of Control is the execution order of instructions in a program l All programs can be written with three control flow elements: 1. Sequence - just go to the next instruction 2. Branching or Selection - a choice of at least two –either go to the next instruction –or jump to some other instruction 3. Loop or Repetition - a loop (repeat a block of code) at the end of the loop –either go back and repeat the block of code –or continue with the next instruction after the block

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 3 Java Flow Control Statements Sequence l the default l Java automatically executes the next instruction unless you use a branching statement Branching l if l if-else l if-else if-else if- … - else l switch Loop l while l do-while l for

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 4 Java if Statement l Simple selection l Do the next statement if test is true or skip it if false l Syntax: if (Boolean_Expression) Action if true; //execute only if true next action; //always executed l Note the indentation for readability (not compile or execution correctness)

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 5 if Example l The body of the if statement is conditionally executed l Statements after the body of the if statement always execute if(eggsPerBasket < 12) //begin body of the if statement System.out.println(“Less than a dozen eggs per basket”); //end body of the if statement totalEggs = numberOfEggs * eggsPerBasket; System.out.println(“You have a total of + totalEggs + “ eggs.”);

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 6 Multiple Statements Action if true can be either a single Java statement or a set of statements enclosed in braces { }. l A set of statements in braces is called a compound statement and can be used anywhere a single statement can be used. if(eggsPerBasket < 12) { //begin body of the if statement System.out.println(“Less than a dozen...”); costPerBasket = 1.1 * costPerBasket } //end body of the if statement totalEggs = numberOfEggs * eggsPerBasket; System.out.println(“You have a total of “ + totalEggs + “ eggs.”); All statements between braces are controlled by if

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 7 Two-way Selection: if-else l Select either one of two options l Either do Action1 or Action2, depending on test value l Syntax: if (Boolean_Expression) { Action1 //execute only if true } else { Action2//execute only if false } Action3//always executed

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 8 if-else Examples l Example with single-statement blocks: if(time < limit) System.out.println(“You made it.”); else System.out.println(“You missed the deadline.”); l Example with compound statements: if(time < limit) { System.out.println(“You made it.”); bonus = 100; } else { System.out.println(“You missed the deadline.”); bonus = 0; }

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 9 Definition of Boolean Values l Branching: there is more than one choice for the next instruction l Which branch is taken depends on a test condition which evaluates to either true or false l In general: if test is true then do this, otherwise it is false, do something else l Variables (or expressions) that are either true or false are called boolean variables (or expressions) So the value of a boolean variable (or expression) is either true or false boolean is a primitive data type in Java

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 10 Boolean Expressions l Boolean expressions can be thought of as test conditions (questions) that are either true or false l Often two values are compared l For example: Is A greater than B? Is A equal to B? Is A less than or equal to B? etc. l A and B can be any data type (or class), but they should be the same data type (or class)

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 11 Java Comparison Operators

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 12 Compound Boolean Expressions Use && to AND two or more conditions »Expression will be true if both parts are true. »A && B will be true if both A and B are true Use || to OR two or more conditions »Expression will be true if either part is true, or if both parts are true. »A && B will be true if either A or B is true, or if both A and B are true.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 13 Compound Boolean Expressions l Example: write a test to see if B is either 0 or between the values of B and C (B == 0) || (A <= B && B < C) l In this example the parentheses are not required but are added for clarity »See text (and later slides) for Precedence rules »Note the short-circuit, or lazy, evaluation rules in text (and later in slides) »Use a single & for AND and a single | for OR to avoid short-circuit evaluation and force complete evaluation of a boolean expression

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 14 Nested if Statements One if statement can have another if statement inside it. These are called nested if statements. l Inner statements are indented more than outer statements. if (balance >= 0) if (RATE >= 0) balance = balance + (RATE * balance)/12; else System.out.println("Cannot have negative rate"); else balance = balance – OVERDRAWN_PENALTY; inner statement outer statement The inner statement will be skipped entirely if balance >= 0 is false.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 15 Multibranch selection: if-else if-else if-…-else l One way to handle situations with more than two possibilities l Syntax: if(Boolean_Expression_1) Action_1 else if(Boolean_Expression_2) Action_2. else if(Boolean_Expression_n) Action_n else Default_Action

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 16 if-else if-else if-…-else Example if(score >= 90) grade = 'A'); else if (score >= 80) grade = 'B'; else if (score >= 70) grade = 'C'; else if (score >= 60) grade = 'D'; else grade = 'E'; Note indentation. Even though these are nested if statements, they are all indented the same amount to indicate a multibranch selection.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 17 Multibranch selection: switch l Another way to program multibranch selection Uses Controlling_Expression to decide which way to branch Controlling_Expression must be char, int, short or byte. Controlling Expression and Case_Label must be same type. switch(Controlling_Expressi on) { case Case_Label: statements … break; case Case_Label: statements … break; default: statements … break; }

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 18 Multibranch selection: switch When a break statement is encountered, control goes to the first statement after the switch. break may be omitted l Can have any number of cases default case is optional switch(Controlling_Expressi on) { case Case_Label: statements … break; case Case_Label: statements … break; default: statements … break; }

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 19 switch Example switch(seatLocationCode) { case 1: System.out.println(“Orchestra”); price = 40.00; break; case 2: System.out.println(“Mezzanine”); price = 30.00; break; case 3: System.out.println(“Balcony”); price = 15.00; break; default: System.out.println(“Unknown seat code”); break; } Output if seatLocationCode is 2: Mezzanine

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 20 Repetition: Loops l Structure: »Usually some initialization code »body of loop »loop termination condition l Several logical organizations »counting loops »sentinel-controlled loops »infinite loops »minimum of zero or minimum of one iteration l Several programming statement variations »while »do-while »for

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 21 while Loop l Syntax: while(Boolean_Expression) { //body of loop First_Statement;... Last_Statement; } l Initialization statements usually precede the loop. Boolean_Expression is the loop termination condition. The loop will continue executing as long as Boolean_Expression is true. l May be either counting or sentinel loop »Good choice for sentinel loop Something in body of loop should eventually cause Boolean_Expression to be false.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 22 Semantics of the while Statement while (Boolean_Expression) Body Start Evaluate Boolean_Expression End loop false Execute Body true

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 23 while : A Counting Loop Example l A loop to sum 10 numbers entered by user int next; //Loop initialization int count = 1; int total =0; while(count <= 10) //Loop termination condition { //Body of loop next = SavitchIn.readLineInt(); total = total + next; count++; //Loop termination counter }

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 24 while : A Sentinel Controlled Loop Example l A loop to sum positive integers entered by the user next is the sentinel l The loop terminates when the user enters a negative number //Initialization int next = 0; int total = 0; while(next >= 0) //Termination condition { //Body total = total + next; next = SavitchIn.readLineInt(); }

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 25 while : A Minimum of Zero Iterations Because the first input value read and the test precedes the loop, the body the while loop body may not execute at all //Initialization int next; int total = 0; next = SavitchIn.readLineInt(); while(next >= 0)//Termination condition { //Body total = total + next; next = SavitchIn.readLineInt(); } l If the first number the user enters is negative the loop body never executes

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 26 do-while Loop Syntax do { //body of loop First_Statement;... Last_Statement; } while(Boolean_Expression); l Initialization code may precede loop body l Loop test is after loop body so the body must execute at least once (minimum of at least one iteration) l May be either counting or sentinel loop »Good choice for sentinel loop Something in body of loop should eventually cause Boolean_Expression to be false.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 27 Semantics of the do-while Statement do Body while (Boolean_Expression); Start Evaluate Boolean_Expression End loop false Execute Body true Execute Body

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 28 do-while Example int count = 1; int number = 5; do //Display integers 1 to 5 on one line { System.out.print(count + " "); count++; } while(count <= number); Note that System.out.print() is used and not System.out.println() so the numbers will all be on one line. Output:

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 29 for Loop l Good choice for counting loop l Initialization, loop test, and loop counter change are part of the syntax l Syntax: for(Initialization; Boolean_Expression; Update_Action) loop body;

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 30 Semantics of the for Statement for(Initialization; Boolean_Expression; Update_Action) loop body; Start Evaluate Boolean_Expression End loop false Execute Body true Execute Initialization Execute Update_Action

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 31 for Example l Count down from 3 to 1 for(int count = 3; count >= 1; count--) { System.out.print("T = " + count); System.out.println(" and counting"); } System.out.println("Blast off!"); Output: T = 3 and counting T = 2 and counting T = 1 and counting Blast off!

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 32 The exit Method If you have a program situation where it is pointless to continue execution you can terminate the program with the exit(n) method. n is often used to identify if the program ended normally or abnormally. n is conventionally 0 for normal termination and non-zero for abnormal termination.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 33 exit Method Example System.out.println("Enter e to exit or c to continue"); char userIn = SavitchInReadLineChar(); if(userIn == 'e') System.exit(0); else if(userIn == 'c') { //statements to do work } else { System.out.println("Invalid entry"); //statements to something appropriate }

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 34 Nested Loops l The body of a loop can have any kind of statements, including another loop. l Each time the outer loop body is executed, the inner loop body will execute 5 times, making a total of 20 times. for (line = 0; line < 4; line++) for (star = 0; star < 5; star++) System.out.print('*'); System.out.println(); body of inner loop body of outer loop Output: *****

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 35 Some Practical Considerations When Using Loops l The most common loop errors are unintended infinite loops and off-by-one errors in counting loops. l Sooner or later everyone writes an unintentional infinite loop »To get out of an unintended infinite loop enter ^C (control-C) l Loops should be tested thoroughly, especially at the boundaries of the loop test, to check for off-by-one and other possible errors.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 36 Tracing a Variable in a Loop l Tracing a variable: print out the variable each time through the loop l A common technique is to test loop counters and troubleshoot off-by-one and other loop errors. l Some systems provide a built-in tracing system that allows you to trace a variable without having to change your program. l If no built-in utility is available, insert temporary output statements to print values.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 37 The Type boolean l A primitive type l Can have expressions, values, constants, and variables just as with any other primitive type Only two values: true and false Can use a boolean variable as the condition in an if statement l Using a boolean variable as the condition can make an if statement easier to read by avoiding a complicated expression. if (systemsAreOK) System.out.println("Initiate launch sequence."); else System.out.println("Abort launching sequence");

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 38 boolean Variables in Assignments A boolean expression evaluates to one of the two values true or false. The value of a boolean expression can be assigned to a boolean variable: int number = -5; boolean isPositive; isPositive = (number > 0); if (isPositive) System.out.println(“positive”); else System.out.println(“negative or zero”); There are simpler and easier ways to write this small program, but boolean variables are useful in keeping track of conditions that depend on a number of factors. Parentheses are not necessary here. Parentheses are necessary here.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 39 Truth Tables for boolean Operators Value of AValue of BA && B truetruetrue truefalsefalse falsetruefalse falsefalsefalse Value of AValue of BA || B truetruetrue truefalsetrue falsetruetrue falsefalsefalse Value of A!A truefalse falsetrue && (and)|| (or) ! (not)

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 40 Precedence An example of using precedence rules to see which operators in following expression should be done first: score 90 l Division operator has highest precedence of all operators used here so treat it as if it were parenthesized: score 90 l Subtraction operator has next highest precedence : score 90 l The operators have equal precedence and are done in left-to- right order : (score 90) l The last expression is a fully parenthesized expression that is equivalent to the original. It shows the order in which the operators in the original will be evaluated.

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 41 Precedence Rules Highest Precedence First: the unary operators: +, -, ++, --, and ! Second: the binary arithmetic operators: *, /, % Third: the binary arithmetic operators: +, - Fourth: the boolean operators:, = = Fifth: the boolean operators: ==, != Sixth: the boolean operator & Seventh: the boolean operator | Eighth: the boolean operator && Ninth: the boolean operator || Lowest Precedence

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 42 Short-Circuit Evaluation l Short-circuit evaluation—only evaluating as much of a boolean expression as necessary. l Example: If assign > 0 is false, then the complete expression cannot be true because AND is only true if both operands are true. l Java will not evaluate the second part of the expression. Short-circuit evaluation prevents a divide-by-zero exception when assign is 0. if ((assign > 0) && ((total/assign) > 60)) System.out.println(“Good work”); else System.out.println(“Work harder.”);

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 43 Summary Part 1 Java selection statements: if, if-else, if-else if, and switch Java repetition (loop) statements: while, do-while, and for l Loops can be counter or sentinel controlled l Any loop can be written any of the three loop statements, but »while and do-while are good choices for sentinel loops »for is a good choice for counting loops

Chapter 3Java: an Introduction to Computer Science & Programming - Walter Savitch 44 Summary Part 2 Unintended infinite loops can be terminated by entering ^C (control-C) l The most common loop errors are unintended infinite loops and off-by-one errors in counting loops Branching and loops are controlled by boolean expressions »boolean expressions are either true or false »boolean is a primitive data type in Java exit(n) is a method that terminates a program »n = 0 is the conventional value for normal termination