# Program Control Flow

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Lecture slides for: Chapter 3 Program Control Flow Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, ISBN: Permission is hereby granted to use these lecture slides in conjunction with the book. Modified: 14/11/08 JACT 3: Program Control Flow 3-1/46 Boolean expressions Control flow: selection statements Control flow: loops Assertions Overview JACT 3: Program Control Flow 3-2/46

2 Boolean expressions Conditions can be expressed by means of boolean expressions. A boolean expression has the primitive data type boolean, and always evaluates to one of two values: true or false. A boolean expression can be formulated using relational operators and/or logical operators. // Boolean variables are like other variables boolean flag, OK; flag = true; OK = flag; JACT 3: Program Control Flow 3-3/46 Relational operators Operator Meaning (a and b are arithmetic expressions) a == b a is equal to b? a!= b a is not equal to b? a < b a is less than b? a <= b a is less than or equal to b? a > b a is greater than b? a >= b a is greater than or equal to b? All relational operators are binary. Precedence: (high to low) 1. Arithmetic operators 2. Relational operators 3. Assignment operators int i = 1999; boolean iseven = i%2 == 0; // false float numhours = 56.5; boolean overtime = numhours > 37.5; // true JACT 3: Program Control Flow 3-4/46

3 Logical operators Operator Meaning! Negation, results in inverting the truth value of the operand, i.e.!true evaluates to false, and!false evaluates to true. && Conditional And, evaluates to true if both operands have the value true, and false otherwise. Conditional Or, evaluates to true if one or both operands have the value true, and false otherwise. Precedence rules: 1. Negation 2. Conditional And 3. Conditional Or The binary operators Conditional Or ( ) and And (&&) associate from left to right. The unary operator Negation (!) associate from right to left. JACT 3: Program Control Flow 3-5/46 Logical operators Short-Circuit evaluation of logical operators. Evaluation stops as soon as the truth value of the expression can be determined. Example: boolean b1 = (4 == 2) && (1 < 4) // false - parentheses can be left out. boolean b2 = (!b1) (2.5 > 8) // true - parentheses can be left out. boolean b3 =!(b1 && b2) // true boolean b4 = b1!b3 && b2 // false Evaluation sequence: (b1 ((!b3) && b2)) => (false ((false) && b2)) => (false (false)) => (false) (!b3) && b2) => ((false) && b2) => (false) (*) Note: Value of the expression must be false since one operand of Conditional And has the value false. Thus, evaluation stops without considering the value of b2. JACT 3: Program Control Flow 3-6/46

4 De Morgans laws b1 og b2 are boolean expressions!(b1 && b2) <=> (!b1!b2)!(b1 b2) <=> (!b1 &&!b2) Gas tank 0 < >= "Low on gas!" "At least 3/4 full..."!(gas_tank < 0.75 && gas_tank < 0.25) <=>!(gas_tank < 0.75)!(gas_tank < 0.25)!(gas_tank < 0.75) <=> (gas_tank >= 0.75)!(gas_tank < 0.25) <=> (gas_tank >= 0.25)!(gas_tank < 0.75 && gas_tank < 0.25) <=> (gas_tank >= 0.75) (gas_tank >= 0.25) Boolean expression like these can be used to control the program s flow of execution, e.g. to turn on a red lamp if the gas tank level falls below 25%. JACT 3: Program Control Flow 3-7/46 Controlling flow of execution Two types of statements can be used to control the execution of actions: Selection statement: action is executed only if a certain condition is true. Loop statement: action is repeated as long as a certain condition is true. (start) (start) Activity Test in activity if condition diagram [true] Activity Test in activity loop condition diagram [true] [false] Activity in activity diagram Execute if body [false] Activity Execute in loop body (end) (end) (a) Control flow: if statement (b) Control flow: loop The condition is specified as a boolean expression. JACT 3: Program Control Flow 3-8/46

5 Simple selection statement: if Control flow: selection statements Performs an action, the if body, if a given condition is true. keyword boolean expression if (numhours > 37.5) salary = salary + (numhours ) * 30.0; if body Problem: We want to calculate the weekly salary of an employee that has a fixed salary of 750 USD, but receives additional payment if she works overtime. The overtime payment is based on a fixed salary of 30 USD per hour for every hour past the normal work week of 37.5 hours. An employee who hasn t worked overtime, has a salary of: An employee who has worked overtime, has a salary of: (numhours ) * 30.0 JACT 3: Program Control Flow 3-9/46 Simple selection statement: if A simple if-statement can be used to decide whether an action (comprised of a set of statements) will be executed. Syntax: if (<boolean expression>) { /* statements for if body */ Semantics: Evaluate the boolean expression: If it is true, execute the statements in the if body, and continue with the rest of the program. If it is false, skip the if body, and continue with the rest of the program. Example: salary = 750.0; if (numhours > 37.5) { salary = salary + (numhours ) * 30.0; JACT 3: Program Control Flow 3-10/46

6 Simple selection statement: if // Calculating weekly salary, version 1. import java.util.scanner; public class Salary1 { public static void main(string[] args) { final double NORMAL_WORKWEEK = 37.5; // Read the number of hours worked this week. Scanner keyboard = new Scanner(System.in); System.out.print("Enter the number of hours worked [decimal number]: "); double numhours = keyboard.nextdouble(); // Calculate the weekly salary and print it to the terminal window. double salary = 750.0; // (1) weekly salary if (numhours > NORMAL_WORKWEEK) // (2) salary = salary + (numhours - NORMAL_WORKWEEK) * 30.0; // (3) System.out.printf("Salary for %.1f hours is %.2f USD%n", numhours, salary); // (4) JACT 3: Program Control Flow 3-11/46 Running the program: Enter the number of hours worked [decimal number]: 46.5 Salary for 46.5 hours is USD JACT 3: Program Control Flow 3-12/46

7 Statements and blocks A statement in Java can be simple (i.e. consist of only one action) or compound (i.e. consist of multiple statements grouped in a block). A "local" block Block notation: {<-- initiates a block... ends a block --> A block is used to group a sequence of statements, and may contain variable declarations. A block (of statements) is considered one statement (called a compound statement), and can be used wherever a simple statement can be used. If a block contains only a single statement, block notation is not needed. Statement terminator: ; Semicolon (;) is used to terminate a statement in Java. A compound statement does not need a semicolon to terminate it. A semicolon alone denotes the empty statement that does nothing. JACT 3: Program Control Flow 3-13/46 More on selection Problem: We want to calculate weekly salary based on hourly wages and the number of hours worked during the current week. Assume 50% extra salary is paid for all hours above 37.5 hours a week. 1. For someone working overtime, the salary can be calculated by: hourlyrate * * hourlyrate * (numhours ) 2. For someone not working overtime, the salary can be calculated by: hourlyrate * numhours A program for calculation of weekly salaries has to make a choice between these formulas, depending on the number of hours worked during the current week. If the condition for overtime is true salary = hourlyrate* *hourlyRate*(numHours-37.5) else (i.e. the condition is false) salary = hourlyrate*numhours JACT 3: Program Control Flow 3-14/46

8 Selection statement with two choices: if-else An if-else-statement can be used to select between two alternative actions. Syntax: if (<boolean expression>) { /* statements for if body */ else { /* statements for else body */ Semantics: Evaluate the boolean expression: If it is true, execute the statements in the if body, and continue with the rest of the program. If it is false, execute the statements in the else body, and continue with the rest of the program. JACT 3: Program Control Flow 3-15/46 Selection statement with two choices: if-else // Calculating weekly salary, version 2. import java.util.scanner; public class Salary2 { public static void main(string[] args) { final double NORMAL_WORKWEEK = 37.5; final double FIXED_SALARY = 750.0; // Read the number of hours worked this week. Scanner keyboard = new Scanner(System.in); System.out.print("Enter the number of hours worked [decimal number]: "); double numhours = keyboard.nextdouble(); // Calculate the weekly salary and print it to the terminal window. double salary = 0.0; // weekly salary if (numhours <= NORMAL_WORKWEEK) { // (1) salary = FIXED_SALARY; // (2) if body else { // (3) salary = FIXED_SALARY + JACT 3: Program Control Flow 3-16/46

9 (numhours - NORMAL_WORKWEEK) * 30.0; // (4) else body System.out.printf("Salary for %.1f hours is %.2f USD%n", numhours, salary); Running the program 1: Enter the number of hours worked [decimal number]: 39.5 Salary for 39.5 hours is USD Running the program 2: Enter the number of hours worked [decimal number]: 42.5 Salary for 42.5 hours is USD JACT 3: Program Control Flow 3-17/46 Nested selection statements Desired program behaviour: If gas tank is less than 3/4 full: Check if it is less than 1/4 full and output message "Low on gas!" else: Gi melding "At least 3/4 tank. Go on!" Program code (containing a logical error): if (gas_tank < 0.75) // 1st if-statement if (gas_tank < 0.25) // 2nd if-statement System.out.println("Low on gas!"); else System.out.println("At least 3/4 tank. Go on!"); Q: Which if-statement is the else-body associated with? A: The else-body is always associated to the nearest if-statement. The program code above contains a logical error! JACT 3: Program Control Flow 3-18/46

10 Nested selection statements Correct program code: if (gas_tank < 0.75) { // Necessary to use block notation if (gas_tank < 0.25) // if-body of 1st if-statement System.out.println("Low on gas!"); else { System.out.println("At least 3/4 tank. Go on!"); Best practice: Enclose if-body and else-body using block notation, {. JACT 3: Program Control Flow 3-19/46 Nested selection statements Can we find a simpler solution to the problem? What is wrong with the following code? if (gas_tank < 0.75 && gas_tank < 0.25) { System.out.println("Low on gas!"); else { System.out.println("At least 3/4 tank. Go on!"); The 2nd message can be printed even if the tank is not 3/4 full! Be careful when combining nested conditions. if (b 1 ) if (b 2 ) if (b n )... else... is not necessarily equal to (equal if there is no else-body) if (b 1 && b 2... && b n )... else... JACT 3: Program Control Flow 3-20/46

11 Nested selection statements A better solution: if (gas_tank < 0.25) { System.out.println("Low on gas!"); else if (gas_tank >= 0.75) { // if-statement in else-body System.out.println("At least 3/4 tank. Go on!"); Common errors when using if-statements if (a = b) // Syntax error: condition is not a boolean expression! System.out.println("Syntax error!"); if (a == b) ; // Empty statement System.out.println("a equals b!"); // Logical error: always executed! if (a == b) ; // No error: Empty statement means "do nothing" else System.out.println("a is not equal to b!"); JACT 3: Program Control Flow 3-21/46 Chaining if-else statements Desired program behaviour: Print "Too high!" if guess > answer Print "Too low!" if guess < answer Print "Correct answer!" if guess == answer Program code: if (guess > answer) { System.out.println("Too high!"); else if (guess < answer) { System.out.println("Too low!"); else { // if (guess == answer) System.out.println("Correct answer!"); JACT 3: Program Control Flow 3-22/46

12 Control flow: loops Loops allow repeated execution of a part of the program. The boolean expression (true or false) that controls loop termination, is called the loop condition. The part of the program that is repeatedly executed, is called the loop body. The loop body can be comprised of a single statement or a compound statement. Java offers 3 types of loops: 1. while-loop. 2. do-while-loop 3. for-loop The loops differ in when the loop body is executed and when the loop condition is tested. Some loops execute the loop body before testing the loop condition, while others test the condition before (possibly) executing the loop body. JACT 3: Program Control Flow 3-23/46 Syntax: while (<loop condition>) { /* loop body */ while-loop Semantics: Execute the loop body while the loop condition is true. Tests the loop condition before executing the loop body. If the loop condition is false at the entry point of the loop, the loop body is skipped. The loop condition is a boolean expression. number == 0.0 amount <= balance carryon // boolean variable (amount <= balance) && carryon (age >= 18) && (age <= 67) (age == 80) JACT 3: Program Control Flow 3-24/46

13 Example: Sentinel-controlled repetition Problem: We want to calculate the average of a variable number of floating-point values, given by the user. // Reading n decimal numbers from the keyboard and calculate the average. import java.util.scanner; public class Average { public static void main(string[] args) { Scanner keyboard = new Scanner(System.in); double sentinel = 0.0; System.out.println("Input a sequence of numbers, one per line."); System.out.printf("Terminate with %.1f.%n", sentinel); int count = 0; double sum = 0.0; double number = keyboard.nextdouble(); while (number!= sentinel) { sum = sum + number; count = count + 1; number = keyboard.nextdouble(); JACT 3: Program Control Flow 3-25/46 if (count == 0) { System.out.println("You didn't input any numbers!"); else { // count is different from 0 System.out.printf("The average value is %.1f%n", (sum/count)); Running the program: Input a sequence of numbers, one per line. Terminate with You didn't input any numbers! Exercise: Run the program and check that it calculates the average of values 1.25, 3.33, 4.56 and correctly. The last line of the of the program should be as follows. The average value is 1.7 JACT 3: Program Control Flow 3-26/46

14 Example: counter-controlled repetition Problem: For a class of 8 students, we want to register how many passed and failed the exam, and what the overall percentage of failure was. // Calculating exam statistics. Version 1. import java.util.scanner; public class ExamResult { public static void main(string[] args) { Scanner keyboard = new Scanner(System.in); int numstudents = 0, passed = 0, failed = 0; while (numstudents < 8) { System.out.print("Input exam result [1=passed, 2=failed]: "); int result = keyboard.nextint(); if (result == 1) { passed = passed + 1; else { failed = failed + 1; numstudents = numstudents + 1; JACT 3: Program Control Flow 3-27/46 System.out.println("Number of students: " + numstudents); System.out.println("Number passed: " + passed); System.out.println("Number failed: " + failed); System.out.printf("Percentage of failure: %.2f%%", (failed/numstudents)*100.0); Running the program: Input exam result [1=passed, 2=failed]: 1 Input exam result [1=passed, 2=failed]: 2 Input exam result [1=passed, 2=failed]: 3 Input exam result [1=passed, 2=failed]: 43 Input exam result [1=passed, 2=failed]: 1 Input exam result [1=passed, 2=failed]: 2 Input exam result [1=passed, 2=failed]: 3 Input exam result [1=passed, 2=failed]: 45 Number of students: 8 Number passed: 2 Number failed: 6 Percentage of failure: 0.00% The program contains logical errors! JACT 3: Program Control Flow 3-28/46

15 Validity of input is not controlled, i.e. the program is not robust! We need to verify that the input is valid. The calculation of failure percentage is wrong due to use of integer division! Explicit conversion (cast) of values used in the expression is necessary. The cast operator creates a value of the given type using the operand value, without modifying the operand itself. int i = 20; double d = (double)i / 16; // d is assigned the value 1.25D We need a more robust program! JACT 3: Program Control Flow 3-29/46 Example: counter-controlled repetition robustness // Calculating exam statistics. Version 2. import java.util.scanner; public class ExamResult2 { public static void main(string[] args) { Scanner keyboard = new Scanner(System.in); int numstudents = 0, passed = 0, failed = 0; while (numstudents < 8) { System.out.print("Input exam result [1=passed, 2=failed]: "); int result = keyboard.nextint(); if (result == 1) { passed = passed + 1; numstudents = numstudents + 1; else if (result == 2) { failed = failed + 1; numstudents = numstudents + 1; else { System.out.println("Invalid input data!"); JACT 3: Program Control Flow 3-30/46

16 System.out.println("Number of students: " + numstudents); System.out.println("Number passed: " + passed); System.out.println("Number failed: " + failed); System.out.printf("Percentage of failure: %.2f%%", ((double)failed/numstudents)*100.0); Running the program: Input exam result [1=passed, 2=failed]: 1 Input exam result [1=passed, 2=failed]: 2 Input exam result [1=passed, 2=failed]: 3 Invalid input data! Input exam result [1=passed, 2=failed]: 1 Input exam result [1=passed, 2=failed]: 2 Input exam result [1=passed, 2=failed]: 2 Input exam result [1=passed, 2=failed]: 1 Input exam result [1=passed, 2=failed]: 1 Input exam result [1=passed, 2=failed]: 1 Number of students: 8 Number passed: 5 JACT 3: Program Control Flow 3-31/46 Number failed: 3 Percentage of failure: 37.50% JACT 3: Program Control Flow 3-32/46

17 Syntax: do { /* loop body */ while (<loop condition>); do-while-loop Semantics: Execute the loop body while the loop condition is true. Test the loop condition after executing the loop body. The do-while-loop always executes the loop body at least once. Example: do-while-loop // Calculating exam statistics. Version 3. import java.util.scanner; public class ExamResult3 { public static void main(string[] args) { Scanner keyboard = new Scanner(System.in); int numstudents = 0, passed = 0, failed = 0; JACT 3: Program Control Flow 3-33/46 do { System.out.print("Input exam result [1=passed, 2=failed]: "); int resultat = keyboard.nextint(); if (resultat == 1) { passed = passed + 1; numstudents = numstudents + 1; else if (resultat == 2) { failed = failed + 1; numstudents = numstudents + 1; else { System.out.println("Invalid input data!"); while (numstudents < 8); System.out.println("Number of students: " + numstudents); System.out.println("Number passed: " + passed); System.out.println("Number failed: " + failed); System.out.printf("Percentage of failure: %.2f%%", ((double)failed/numstudents)*100.0); JACT 3: Program Control Flow 3-34/46

18 Comparing while og do-while In both types of loops: the execution of the loop body stops if the loop condition becomes false. the loop condition must have a valid value before it is tested. make sure the loop condition is affected by an action in the loop body, so that it evaluates to true, otherwise you risk an infinite loop. Counter-controlled loops, where the number of repetitions is known in advance, is most commonly used. do-while-loop The loop body is executed at least once. The loop condition is tested at the end of the loop, after the loop body. while-loop The loop body may not be executed at all. The loop condition is tested at the start of the loop, before the loop body. Loop variables must be initialised before the entry point of the loop. Useful to control errors in data that can cause the program to terminate, e.g. while (objref!= null) {... objref.message()... JACT 3: Program Control Flow 3-35/46 Comparing while and do-while What is the difference between the following 2 loops?... while (catisaway) { mouse.play(); do { mouse.play(); while (catisaway);... JACT 3: Program Control Flow 3-36/46

19 Nested loops A loop can contain any statement in its loop body, also another loop. Example: Printing a multiplication table int number = 1, limit = 10; while (number <= limit) { // Outer loop int times = 1; while (times <= limit) { // Inner loop int product = number * times; System.out.println(number + " x " + times + " = " + product); times = times + 1; number = number + 1; JACT 3: Program Control Flow 3-37/46 Assertions How can we guarantee that the program behaves as expected? This requires thorough testing. One way to build trust in the program is using assertions. An assertion is a boolean expression that we claim is true during program execution. The expression concerns results computed during execution. Such assertions can be placed in the source code, and will be executed when the program is run. If an assertion holds, we can assume that the part of the program the assertion is about, is working correctly. JACT 3: Program Control Flow 3-38/46

20 Assertions: assert-statement Syntax: assert <BooleanExpression>; // simple form assert <BooleanExpression> : <Expression> ; // general form The semantics of the simple form: If the truth value of <BooleanExpression> is false: print an error message on the terminal; abort the program; else: // truth value of <BooleanExpression> is true execution continues with the first statement after the assert-statement; The general form leads to the value of <Expression> being printed together with the error message, if assertion is false. JACT 3: Program Control Flow 3-39/46 Enabling assertions Assertions are only executed if they are turned on: >java -ea Speed The program can also be run with assertions turned off, the assertions are not executed which is the default behaviour: >java Speed Compilation is no different than for a program without assertions: >javac Speed.java JACT 3: Program Control Flow 3-40/46

21 Example: Using the simple form of assertions import java.util.scanner; /** * Assertions -- simple form */ public class Speed { public static void main(string[] args) { Scanner keyboard = new Scanner(System.in); System.out.print("Input distance (km): "); double distance = keyboard.nextdouble(); System.out.print("Input time (hours): "); double time = keyboard.nextdouble(); assert distance >= 0.0 && time > 0.0; double speed = distance / time; System.out.printf("Speed (km/hour): %.1f%n", speed); JACT 3: Program Control Flow 3-41/46 Compiling and running the Speed class: >javac Speed.java >java -ea Speed Input distance (km): 12.0 Input time (hours): 3.0 Speed (km/hour): 4.0 >java -ea Speed Input distance (km): 15.0 Input time (hours): 0.0 Exception in thread "main" java.lang.assertionerror at Speed.main(Speed.java:13) Running the Speed class without assertions: >java Speed Input distance (km): 16.0 Input time (hours): 0.0 Speed (km/hour): Infinity JACT 3: Program Control Flow 3-42/46

22 >java Speed Input distance (km): 18.0 Input time (hours): 5.0 Speed (km/hour): 3.6 JACT 3: Program Control Flow 3-43/46 Example: Using assertions with additional information import java.util.scanner; /** * Assertions -- with additional information */ public class Speed2 { public static void main(string[] args) { Scanner keyboard = new Scanner(System.in); System.out.print("Input distance (km): "); double distance = keyboard.nextdouble(); System.out.print("Input time (hours): "); double time = keyboard.nextdouble(); assert distance >= 0.0 && time >0.0 : "Either distance is negative or " + "time is less than or equal to 0.0"; double speed = distance / time; System.out.printf("Speed (km/hour): %.1f%n", speed); JACT 3: Program Control Flow 3-44/46

23 Compiling and running the Speed2 class: >javac Speed2.java >java -ea Speed2 Input distance (km): 12.0 Input time (hours): -3.0 Exception in thread "main" java.lang.assertionerror: Either distance is negative or time is less than or equal to 0.0 at Speed2.main(Speed2.java:13) JACT 3: Program Control Flow 3-45/46 How to use assertions The previous examples have used assertions to validate user input. Use assertions to check that variable do not contain unexpected values, before they are used. Do not use assertions to control parameter values in a method if other clients use this method. This control is only performed if assertions is turned on during program execution. Using assertions to control values will print a standard error message (AssertionError) that provides little information about the cause of the problem. Do not use assertions to perform calculations needed by the program. These calculations will not be performed if assertions are turned off when the program is run. JACT 3: Program Control Flow 3-46/46

### Program Control Flow

Lecture slides for: Chapter 3 Program Control Flow Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 2008. ISBN: 978-1-844480-933-2

### Basic Programming Elements

Chapter 2 Basic Programming Elements Lecture slides for: Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 2008. ISBN: 978-1-844480-933-2

### Lesson 7 Part 2 Flags

Lesson 7 Part 2 Flags A Flag is a boolean variable that signals when some condition exists in a program. When a flag is set to true, it means some condition exists When a flag is set to false, it means

### Chapter 3. Selections

Chapter 3 Selections 1 Outline 1. Flow of Control 2. Conditional Statements 3. The if Statement 4. The if-else Statement 5. The Conditional operator 6. The Switch Statement 7. Useful Hints 2 1. Flow of

### Chapter 6. Arrays. Java Actually: A Comprehensive Primer in Programming

Lecture slides for: Chapter 6 Arrays Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 28. ISBN: 978-1-84448-933-2 http://www.ii.uib.no/~khalid/jac/

### Motivating Examples (1.1) Selections. Motivating Examples (1.2) Learning Outcomes. EECS1022: Programming for Mobile Computing Winter 2018

Motivating Examples (1.1) Selections EECS1022: Programming for Mobile Computing Winter 2018 CHEN-WEI WANG 1 import java.util.scanner; 2 public class ComputeArea { 3 public static void main(string[] args)

### Sorting and searching arrays

Chapter 9 Sorting and searching arrays Lecture slides for: Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 2008. ISBN: 978-1-844480-933-2

### Elementary Programming

Elementary Programming EECS1022: Programming for Mobile Computing Winter 2018 CHEN-WEI WANG Learning Outcomes Learn ingredients of elementary programming: data types [numbers, characters, strings] literal

### Object Communication

Chapter 8 Object Communication Lecture slides for: Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 2008. ISBN: 978-1-844480-933-2

### Chapter 4: Control Structures I

Chapter 4: Control Structures I Java Programming: From Problem Analysis to Program Design, Second Edition Chapter Objectives Learn about control structures. Examine relational and logical operators. Explore

### Programming with Java

Programming with Java Data Types & Input Statement Lecture 04 First stage Software Engineering Dep. Saman M. Omer 2017-2018 Objectives q By the end of this lecture you should be able to : ü Know rules

### Control Structures. Lecture 4 COP 3014 Fall September 18, 2017

Control Structures Lecture 4 COP 3014 Fall 2017 September 18, 2017 Control Flow Control flow refers to the specification of the order in which the individual statements, instructions or function calls

### Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal

Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal Lesson Goals Understand Control Structures Understand how to control the flow of a program

### Polymorphism and Interfaces

Chapter 13 Polymorphism and Interfaces Lecture slides for: Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 2008. ISBN: 978-1-844480-933-2

### Chapter 10. Exception Handling. Java Actually: A Comprehensive Primer in Programming

Chapter 10 Exception Handling Lecture slides for: Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 2008. ISBN: 978-1-844480-933-2

### Repetition Structures

Repetition Structures Chapter 5 Fall 2016, CSUS Introduction to Repetition Structures Chapter 5.1 1 Introduction to Repetition Structures A repetition structure causes a statement or set of statements

### H212 Introduction to Software Systems Honors

Introduction to Software Systems Honors Lecture #04: Fall 2015 1/20 Office hours Monday, Wednesday: 10:15 am to 12:00 noon Tuesday, Thursday: 2:00 to 3:45 pm Office: Lindley Hall, Room 401C 2/20 Printing

### How to define your own classes that implement abstractions. How to pass information to methods and how methods return values.

CHAPTER Defining classes LEARNING OBJECTIVES By the end of this chapter you will understand the following: How to define your own classes that implement abstractions. How to declare, initialize and use

### Chapter Goals. Contents LOOPS

CHAPTER 4 LOOPS Slides by Donald W. Smith TechNeTrain.com Final Draft Oct 30, 2011 Chapter Goals To implement while, for, and do loops To hand-trace the execution of a program To become familiar with common

### Algorithms and Conditionals

Algorithms and Conditionals CSC 1051 Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/

### Lecture 6. Assignments. Summary - Variables. Summary Program Parts 1/29/18. Reading: 3.1, 3.2, 3.3, 3.4

Assignments Lecture 6 Complete for Project 1 Reading: 3.1, 3.2, 3.3, 3.4 Summary Program Parts Summary - Variables Class Header (class name matches the file name prefix) Class Body Because this is a program,

### Condition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.

Repetition Structures Introduction to Repetition Structures Chapter 5 Spring 2016, CSUS Chapter 5.1 Introduction to Repetition Structures The Problems with Duplicate Code A repetition structure causes

### Chapter 3 Selection Statements

Chapter 3 Selection Statements 3.1 Introduction Java provides selection statements that let you choose actions with two or more alternative courses. Selection statements use conditions. Conditions are

### COMP-202: Foundations of Programming. Lecture 3: Boolean, Mathematical Expressions, and Flow Control Sandeep Manjanna, Summer 2015

COMP-202: Foundations of Programming Lecture 3: Boolean, Mathematical Expressions, and Flow Control Sandeep Manjanna, Summer 2015 Announcements Slides will be posted before the class. There might be few

### 2.2 - Making Decisions

2.2 - Making Decisions So far we have only made programs that execute the statements in order, starting with the statements at the top of the screen and moving down. However, you can write programs that

### Java Coding 3. Over & over again!

Java Coding 3 Over & over again! Repetition Java repetition statements while (condition) statement; do statement; while (condition); where for ( init; condition; update) statement; statement is any Java

### School of Computer Science CPS109 Course Notes 5 Alexander Ferworn Updated Fall 15

Table of Contents 1 INTRODUCTION... 1 2 IF... 1 2.1 BOOLEAN EXPRESSIONS... 3 2.2 BLOCKS... 3 2.3 IF-ELSE... 4 2.4 NESTING... 5 3 SWITCH (SOMETIMES KNOWN AS CASE )... 6 3.1 A BIT ABOUT BREAK... 7 4 CONDITIONAL

### Lecture 6. Assignments. Java Scanner. User Input 1/29/18. Reading: 2.12, 2.13, 3.1, 3.2, 3.3, 3.4

Assignments Reading: 2.12, 2.13, 3.1, 3.2, 3.3, 3.4 Lecture 6 Complete for Lab 4, Project 1 Note: Slides 12 19 are summary slides for Chapter 2. They overview much of what we covered but are not complete.

### Values and Variables 1 / 30

Values and Variables 1 / 30 Values 2 / 30 Computing Computing is any purposeful activity that marries the representation of some dynamic domain with the representation of some dynamic machine that provides

### Chapter 3 Selections. Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved.

Chapter 3 Selections Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved. 0132130807 1 Motivations If you assigned a negative value for radius

### Lecture 9. Assignment. Logical Operations. Logical Operations - Motivation 2/8/18

Assignment Lecture 9 Logical Operations Formatted Print Printf Increment and decrement Read through 3.9, 3.10 Read 4.1. 4.2, 4.3 Go through checkpoint exercise 4.1 Logical Operations - Motivation Logical

### Chapter 2. Elementary Programming

Chapter 2 Elementary Programming 1 Objectives To write Java programs to perform simple calculations To obtain input from the console using the Scanner class To use identifiers to name variables, constants,

### BRANCHING if-else statements

BRANCHING if-else statements Conditional Statements A conditional statement lets us choose which statement t t will be executed next Therefore they are sometimes called selection statements Conditional

### COMP-202: Foundations of Programming. Lecture 2: Variables, and Data Types Sandeep Manjanna, Summer 2015

COMP-202: Foundations of Programming Lecture 2: Variables, and Data Types Sandeep Manjanna, Summer 2015 Announcements Midterm Exams on 4 th of June (12:35 14:35) Room allocation will be announced soon

### Example. Write a program which sums two random integers and lets the user repeatedly enter a new answer until it is correct.

Example Write a program which sums two random integers and lets the user repeatedly enter a new answer until it is correct. 1... 2 Scanner input = new Scanner(System.in); 3 int x = (int) (Math.random()

### Sequence structure. The computer executes java statements one after the other in the order in which they are written. Total = total +grade;

Control Statements Control Statements All programs could be written in terms of only one of three control structures: Sequence Structure Selection Structure Repetition Structure Sequence structure The

Assoc. Prof. Dr. Marenglen Biba Before writing a program to solve a problem, have a thorough understanding of the problem and a carefully planned approach to solving it. Understand the types of building

### CSC 1051 Data Structures and Algorithms I

Repetition CSC 1051 Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/ Some slides in this

### Please answer the following questions. Do not re-code the enclosed codes if you have already completed them.

Dec. 9 Loops Please answer the following questions. Do not re-code the enclosed codes if you have already completed them. What is a loop? What are the three loops in Java? What do control structures do?

### Loops and Expression Types

Software and Programming I Loops and Expression Types Roman Kontchakov / Carsten Fuhs Birkbeck, University of London Outline The while, for and do Loops Sections 4.1, 4.3 and 4.4 Variable Scope Section

### Conditional Execution

Unit 3, Part 3 Conditional Execution Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Review: Simple Conditional Execution in Java if () { else {

### More on Exception Handling

Chapter 18 More on Exception Handling Lecture slides for: Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 2008. ISBN: 978-1-844480-933-2

### Information Science 1

Information Science 1 Fundamental Programming Constructs (1) Week 11 College of Information Science and Engineering Ritsumeikan University Topics covered l Terms and concepts from Week 10 l Flow of control

### Repetition. Chapter 6

Chapter 6 Repetition Goals This chapter introduces the third major control structure repetition (sequential and selection being the first two). Repetition is discussed within the context of two general

### JAVA Programming Fundamentals

Chapter 4 JAVA Programming Fundamentals By: Deepak Bhinde PGT Comp.Sc. JAVA character set Character set is a set of valid characters that a language can recognize. It may be any letter, digit or any symbol

Assoc. Prof. Dr. Marenglen Biba (C) 2010 Pearson Education, Inc. All for repetition statement do while repetition statement switch multiple-selection statement break statement continue statement Logical

### Java Primer 1: Types, Classes and Operators

Java Primer 1 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Java Primer 1: Types,

### Selection Statements. Pseudocode

Selection Statements Pseudocode Natural language mixed with programming code Ex: if the radius is negative the program display a message indicating wrong input; the program compute the area and display

### Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition

Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition Learn about repetition (looping) control structures Explore how to construct and use: o Counter-controlled

### Control Structures in Java if-else and switch

Control Structures in Java if-else and switch Lecture 4 CGS 3416 Spring 2016 February 2, 2016 Control Flow Control flow refers to the specification of the order in which the individual statements, instructions

### Motivation of Loops. Loops. The for Loop (1) Learning Outcomes

Motivation of Loops Loops EECS1022: Programming for Mobile Computing Winter 2018 CHEN-WEI WANG We may want to repeat the similar action(s) for a (bounded) number of times. e.g., Print the Hello World message

### Loops. EECS1022: Programming for Mobile Computing Winter 2018 CHEN-WEI WANG

Loops EECS1022: Programming for Mobile Computing Winter 2018 CHEN-WEI WANG Learning Outcomes Understand about Loops : Motivation: Repetition of similar actions Two common loops: for and while Primitive

### Question: Total Points: Score:

CS 170 Exam 1 Section 001 Fall 2014 Name (print): Instructions: Keep your eyes on your own paper and do your best to prevent anyone else from seeing your work. Do NOT communicate with anyone other than

### Lecture 3 Tao Wang 1

Lecture 3 Tao Wang 1 Objectives In this chapter, you will learn about: Arithmetic operations Variables and declaration statements Program input using the cin object Common programming errors C++ for Engineers

### In Fig. 3.5 and Fig. 3.7, we include some completely blank lines in the pseudocode for readability. programs into their various phases.

Formulating Algorithms with Top-Down, Stepwise Refinement Case Study 2: Sentinel-Controlled Repetition In Fig. 3.5 and Fig. 3.7, we include some completely blank lines in the pseudocode for readability.

### Day05 A. Young W. Lim Sat. Young W. Lim Day05 A Sat 1 / 14

Day05 A Young W. Lim 2017-10-07 Sat Young W. Lim Day05 A 2017-10-07 Sat 1 / 14 Outline 1 Based on 2 Structured Programming (2) Conditions and Loops Conditional Statements Loop Statements Type Cast Young

### Section 2.2 Your First Program in Java: Printing a Line of Text

Chapter 2 Introduction to Java Applications Section 2.2 Your First Program in Java: Printing a Line of Text 2.2 Q1: End-of-line comments that should be ignored by the compiler are denoted using a. Two

### Over and Over Again GEEN163

Over and Over Again GEEN163 There is no harm in repeating a good thing. Plato Homework A programming assignment has been posted on Blackboard You have to convert three flowcharts into programs Upload the

### ARG! Language Reference Manual

ARG! Language Reference Manual Ryan Eagan, Mike Goldin, River Keefer, Shivangi Saxena 1. Introduction ARG is a language to be used to make programming a less frustrating experience. It is similar to C

### Repetition CSC 121 Fall 2014 Howard Rosenthal

Repetition CSC 121 Fall 2014 Howard Rosenthal Lesson Goals Learn the following three repetition methods, their similarities and differences, and how to avoid common errors when using them: while do-while

### Chapter 2 Elementary Programming

Chapter 2 Elementary Programming Part I 1 Motivations In the preceding chapter, you learned how to create, compile, and run a Java program. Starting from this chapter, you will learn how to solve practical

### CMPT 125: Lecture 4 Conditionals and Loops

CMPT 125: Lecture 4 Conditionals and Loops Tamara Smyth, tamaras@cs.sfu.ca School of Computing Science, Simon Fraser University January 17, 2009 1 Flow of Control The order in which statements are executed

### Java Programming Language. 0 A history

Java Programming Language 0 A history How java works What you ll do in Java JVM API Java Features 0Platform Independence. 0Object Oriented. 0Compiler/Interpreter 0 Good Performance 0Robust. 0Security 0

### Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition

Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition Learn about repetition (looping) control structures Explore how to construct and use: o Counter-controlled

### Repe\$\$on CSC 121 Fall 2015 Howard Rosenthal

Repe\$\$on CSC 121 Fall 2015 Howard Rosenthal Lesson Goals Learn the following three repetition methods, their similarities and differences, and how to avoid common errors when using them: while do-while

### CSE 114 Computer Science I

CSE 114 Computer Science I Iteration Cape Breton, Nova Scotia What is Iteration? Repeating a set of instructions a specified number of times or until a specific result is achieved How do we repeat steps?

### The for Loop, Accumulator Variables, Seninel Values, and The Random Class. CS0007: Introduction to Computer Programming

The for Loop, Accumulator Variables, Seninel Values, and The Random Class CS0007: Introduction to Computer Programming Review General Form of a switch statement: switch (SwitchExpression) { case CaseExpression1:

### FRAC: Language Reference Manual

FRAC: Language Reference Manual Justin Chiang jc4127 Kunal Kamath kak2211 Calvin Li ctl2124 Anne Zhang az2350 1. Introduction FRAC is a domain-specific programming language that enables the programmer

### Dept. of CSE, IIT KGP

Control Flow: Looping CS10001: Programming & Data Structures Pallab Dasgupta Professor, Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Types of Repeated Execution Loop: Group of

### Fundamentals of Programming Data Types & Methods

Fundamentals of Programming Data Types & Methods By Budditha Hettige Overview Summary (Previous Lesson) Java Data types Default values Variables Input data from keyboard Display results Methods Operators

### Chapter 7. Expressions and Assignment Statements ISBN

Chapter 7 Expressions and Assignment Statements ISBN 0-321-33025-0 Chapter 7 Topics Introduction Arithmetic Expressions Overloaded Operators Type Conversions Relational and Boolean Expressions Short-Circuit

### CCHAPTER SELECTION STATEMENTS HAPTER 3. Objectives

LIANMC03v3_0132221586.QXD 5/15/06 7:41 PM Page 67 CCHAPTER HAPTER 3 1 SELECTION STATEMENTS Objectives To declare boolean type and write Boolean expressions ( 3.2). To distinguish between conditional and

Lecture 10 Online Portal http://structuredprogramming.wikispaces.com/ Menus A menu is a list of functions that a program can perform; the user chooses the desired function from the list. E.g., 1 convert

### CS 152: Data Structures with Java Hello World with the IntelliJ IDE

CS 152: Data Structures with Java Hello World with the IntelliJ IDE Instructor: Joel Castellanos e-mail: joel.unm.edu Web: http://cs.unm.edu/~joel/ Office: Electrical and Computer Engineering building

### CSC 1051 Data Structures and Algorithms I

Repetition CSC 1051 Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/ Some slides in this

### I. Variables and Data Type week 3

I. Variables and Data Type week 3 variable: a named memory (i.e. RAM, which is volatile) location used to store/hold data, which can be changed during program execution in algebra: 3x + 5 = 20, x = 5,

### CSE101-lec#12. Designing Structured Programs Introduction to Functions. Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU

CSE101-lec#12 Designing Structured Programs Introduction to Functions Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU Outline Designing structured programs in C: Counter-controlled repetition

### Introduction to Visual Basic and Visual C++ Arithmetic Expression. Arithmetic Expression. Using Arithmetic Expression. Lesson 4.

Introduction to Visual Basic and Visual C++ Arithmetic Expression Lesson 4 Calculation I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Arithmetic Expression Using Arithmetic Expression Calculations

CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 2 : C# Language Basics Lecture Contents 2 The C# language First program Variables and constants Input/output Expressions and casting

### Arrays and Lists CSC 121 Fall 2014 Howard Rosenthal

Arrays and Lists CSC 121 Fall 2014 Howard Rosenthal Lesson Goals Understand what an array is Understand how to declare arrays Understand what reference variables are Understand how to pass arrays to methods

### The Warhol Language Reference Manual

The Warhol Language Reference Manual Martina Atabong maa2247 Charvinia Neblett cdn2118 Samuel Nnodim son2105 Catherine Wes ciw2109 Sarina Xie sx2166 Introduction Warhol is a functional and imperative programming

Chapter 3 More Flow of Control Overview 3.1 Using Boolean Expressions 3.2 Multiway Branches 3.3 More about C++ Loop Statements 3.4 Designing Loops Slide 3-3 Flow Of Control Flow of control refers to the

### Chapter 6 Primitive types

Chapter 6 Primitive types Lesson page 6-1. Primitive types Question 1. There are an infinite number of integers, so it would be too ineffient to have a type integer that would contain all of them. Question

### Lecture 8 " INPUT " Instructor: Craig Duckett

Lecture 8 " INPUT " Instructor: Craig Duckett Assignments Assignment 2 Due TONIGHT Lecture 8 Assignment 1 Revision due Lecture 10 Assignment 2 Revision Due Lecture 12 We'll Have a closer look at Assignment

### DECISION STRUCTURES: USING IF STATEMENTS IN JAVA

DECISION STRUCTURES: USING IF STATEMENTS IN JAVA S o far all the programs we have created run straight through from start to finish, without making any decisions along the way. Many times, however, you

### CA4003 Compiler Construction Assignment Language Definition

CA4003 Compiler Construction Assignment Language Definition David Sinclair 2017-2018 1 Overview The language is not case sensitive. A nonterminal, X, is represented by enclosing it in angle brackets, e.g.

### 5. Selection: If and Switch Controls

Computer Science I CS 135 5. Selection: If and Switch Controls René Doursat Department of Computer Science & Engineering University of Nevada, Reno Fall 2005 Computer Science I CS 135 0. Course Presentation

### CS110D: PROGRAMMING LANGUAGE I

CS110D: PROGRAMMING LANGUAGE I Computer Science department Lecture 5&6: Loops Lecture Contents Why loops?? While loops for loops do while loops Nested control structures Motivation Suppose that you need

### Chapter 5. Repetition. Contents. Introduction. Three Types of Program Control. Two Types of Repetition. Three Syntax Structures for Looping in C++

Repetition Contents 1 Repetition 1.1 Introduction 1.2 Three Types of Program Control Chapter 5 Introduction 1.3 Two Types of Repetition 1.4 Three Structures for Looping in C++ 1.5 The while Control Structure

### Pace University. Fundamental Concepts of CS121 1

Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

### COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette

COMP 250: Java Programming I Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette Variables and types [Downey Ch 2] Variable: temporary storage location in memory.

### Topics. Chapter 5. Equality Operators

Topics Chapter 5 Flow of Control Part 1: Selection Forming Conditions if/ Statements Comparing Floating-Point Numbers Comparing Objects The equals Method String Comparison Methods The Conditional Operator

### COSC 123 Computer Creativity. Java Decisions and Loops. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 123 Computer Creativity Java Decisions and Loops Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Key Points 1) A decision is made by evaluating a condition in an if/else

### 3chapter C ONTROL S TATEMENTS. Objectives

3chapter C ONTROL S TATEMENTS Objectives To understand the flow of control in selection and loop statements ( 3.2 3.7). To use Boolean expressions to control selection statements and loop statements (

### Chapter 4: Control structures. Repetition

Chapter 4: Control structures Repetition Loop Statements After reading and studying this Section, student should be able to Implement repetition control in a program using while statements. Implement repetition

### Flow of Control. Branching Loops exit(n) method Boolean data type and expressions

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

### Control Statements: Part 1

4 Let s all move one place on. Lewis Carroll Control Statements: Part 1 The wheel is come full circle. William Shakespeare How many apples fell on Newton s head before he took the hint! Robert Frost All

### Question: Total Points: Score:

CS 170 Exam 1 Section 000 Fall 2014 Name (print): Instructions: Keep your eyes on your own paper and do your best to prevent anyone else from seeing your work. Do NOT communicate with anyone other than