Flow Control in Java. Controlling which instruction to execute next Sequential  Similar to walking, one step after another Branching  Similar to a fork.

Slides:



Advertisements
Similar presentations
Flow of Control Chapter 3.
Advertisements

Chapter 7 - Iteration. Chapter Goals Program repitiation statements – or loops – with the for, while, and do-while statements Program repitiation statements.
Control Structures. Decision Making Structures The if and if…else are all selection control structures that introduce decision-making ability into a program.
Intro to CS – Honors I Control Flow: Loops GEORGIOS PORTOKALIDIS
Week 5: Loops 1.  Repetition is the ability to do something over and over again  With repetition in the mix, we can solve practically any problem that.
Loops (Part 1) Computer Science Erwin High School Fall 2014.
Topic 03 Control Statements Programming II/A CMC2522 / CIM2561 Bavy Li.
Repetition Statements Recitation – 02/20/2009 CS 180 Department of Computer Science, Purdue University.
Computer Science 1620 Loops.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 5, 2005.
COMP 14 Introduction to Programming Miguel A. Otaduy May 21, 2004.
Loops – While Loop Repetition Statements While Reading for this Lecture, L&L, 5.5.
5-1 Flow of Control Recitation-01/25/2008  CS 180  Department of Computer Science  Purdue University.
Chapter 6 - Repetition. Introduction u Many applications require certain operations to be carried out more than once. Such situations require repetition.
Switch structure Switch structure selects one from several alternatives depending on the value of the controlling expression. The controlling expression.
Introduction to Java Programming, 4E Y. Daniel Liang.
Loops – While, Do, For Repetition Statements Introduction to Arrays
FIT Objectives By the end of this lecture, students should: understand iteration statements understand the differences of for and while understand.
COMP 14 Introduction to Programming Miguel A. Otaduy May 20, 2004.
Loops Repetition Statements. Repetition statements allow us to execute a statement multiple times Often they are referred to as loops Like conditional.
© 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.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Repetition Statements.
Lecture Review (If-else Statement) if-else statement has the following syntax: if ( condition ) { statement1; } else { statement2; } The condition.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 6 Repetition Statements.
ECE122 L9: While loops March 1, 2007 ECE 122 Engineering Problem Solving with Java Lecture 9 While Loops.
COMP 110 Introduction to Programming Mr. Joshua Stough September 24, 2007.
Section 3 - Selection and Repetition Constructs. Control Structures 1. Sequence 2. Selection 3. Repetition.
Control Structures II. Why is Repetition Needed? There are many situations in which the same statements need to be executed several times. Example: Formulas.
Chapter 4: Control Structures II
JAVA Control Structures: Repetition. Objectives Be able to use a loop to implement a repetitive algorithm Practice, Practice, Practice... Reinforce the.
Lecture 10: Reviews. Control Structures All C programs written in term of 3 control structures Sequence structures Programs executed sequentially by default.
For Loops 1 Loops/Iteration Used to repeat an action Must have a STOP condition Three flavors - for, while, do/while Which loop to use? task with a specific.
Repetitive Structures BBS514 Structured Programming (Yapısal Programlama)1.
5-1 Repetition Statements Repetition statements allow us to execute a statement multiple times Often they are referred to as loops Like conditional statements,
Chapter 5 Loops.
Using Shortcut Arithmetic Operators Accumulator: A variable that is used to total. Its value is repeatedly increased by some amount. Java provides shortcuts.
Copyright © 2012 Pearson Education, Inc. Chapter 6 More Conditionals and Loops Java Software Solutions Foundations of Program Design Seventh Edition John.
Chapter 5: Control Structures II J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design,
Logic Our programs will have to make decisions in terms of what to do next –we refer to the decision making aspect as logic Logic goes beyond simple if.
Flow Control in Java. Controlling which instruction to execute next Sequential  Similar to walking, one step after another Branching  Similar to a fork.
Repetition. Control of Flow SEQUENCE SELECTION (if..else, switch…case) REPETITION.
Loops (cont.). Loop Statements  while statement  do statement  for statement while ( condition ) statement; do { statement list; } while ( condition.
Java Prepared by Gary Langner Types of Loops u for loop (entrance controlled) –do an action for a definite number of times u while loop (entrance controlled.
Java iteration statements ● Iteration statements are statements which appear in the source code only once, but it execute many times. ● Such kind of statements.
Introduction to Computing Concepts Note Set 15. JOptionPane.showMessageDialog Message Dialog Allows you to give a brief message to the user Can be used.
CONTROL STATEMENTS LOOPS. WHY IS REPETITION NEEDED?  There are many situations in which the same statements need to be executed several times.  Example:
Repetition Statements (Loops) The do while Loop The last iteration structure in C++ is the do while loop. A do while loop repeats a statement or.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 5 Looping.
Chapter 6 - Repetition. while Loop u Simplest loop u Two parts: test expression and loop body u Pre-tested loop –Execute loop body if test true –Bypass.
REPETITION MTS3033 OBJECT ORIENTED PROGRAMMING 1.
COMP Loop Statements Yi Hong May 21, 2015.
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
Java Programming: From Problem Analysis to Program Design, 4e Chapter 5 Control Structures II: Repetition.
Catie Welsh February 9,  Friday - No Lab! ◦ Bring questions on Project 2  Lab 3 due on Friday 2.
1 Flow of Control Chapter 5. 2 Objectives You will be able to: Use the Java "if" statement to control flow of control within your program.  Use the Java.
Loops ( while and for ) CSE 1310 – Introduction to Computers and Programming Alexandra Stefan 1.
Lecture 4b Repeating With Loops
Chapter 4 Repetition Statements (loops)
Chapter 6 More Conditionals and Loops
Chapter 5: Control Structures II
Loop Structures.
Week 4 – Repetition Structures / Loops
CiS 260: App Dev I Chapter 4: Control Structures II.
Flow Control in Java.
Outline Altering flow of control Boolean expressions
Repetition Control Structure
Michele Weigle - COMP 14 - Spr 04 Catie Welsh February 14, 2011
Repetition Statements
Presentation transcript:

Flow Control in Java

Controlling which instruction to execute next Sequential  Similar to walking, one step after another Branching  Similar to a fork in the road  Depending on the destination, you choose one way or the other, not both Repetition  Similar to running on a track in the Olympics  Repeating the same track in a loop

Sequential x = 1; x = x + 1; As expected  First instruction first  Second instruction second What if we swap the two instructions? That is  Instructions cannot be in arbitrary order

Branching (Conditional Statements) if ( x < y ) // boolean condition x = x + 1; // execute if true else y = y * 10; // execute if false

Second/Else Branch is Optional if ( x < y ) // boolean condition x = x + 1; // execute if true

Multiple Instructions in One Branch if ( x < y ) { // note the matching braces x = x + 1; y = y – x; } else { y = y * 10; x = y / x; }

Nested Branching if ( x < y ) { x = x + 1; if ( y > 10) y = y – x; } else { y = y * 10; x = y / x; }

Cascaded Branching 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 = ’F’;

Version 2: always correct answer? if (score >= 90) grade = ’A’; if (score >= 80) grade = ’B’; if (score >= 70) grade = ’C’; if (score >= 60) grade = ’D’; if (score < 60) grade = ’F’;

Version 3: always correct answer? if (score >= 90) grade = ’A’; if (score >= 80 && score < 90) grade = ’B’; if (score >= 70 && score < 80) grade = ’C’; if (score >= 60 && score < 70) grade = ’D’; if (score < 60) grade = ’F’;

Repetition (looping) for  “counting” loops  frequently (sometimes inappropriately) used while  general loops  most flexible do-while (“Repeat until”)  at least once  least used

ICU Initialize (start)  What is the initial/starting condition? Continue (or stop)  When to continue/stop?  In what condition does it continue/stop? Update  How to update the condition? If ICU is not carefully designed (common mistake)  your program will be in ICU

Counting loop – 1, 2, 3, … 10 for (int num = 1; num <= 10; num++) System.out.println(num); for (initialize; continue; update) body -- instruction(s) to be repeated Continue -- boolean (continue if true, stop if false)

How about from 55 to 123? for (int num = ?; ?; ?) System.out.println(num);

How about from 55 to 123? for (int num = 55; num <= 123; num++) System.out.println(num);

How about 10 numbers from 55? for (int num = ?; ?; ?) System.out.println(num);

How about 10 numbers from 55? // version 1? for (int num = 55; num <= 64; num++) System.out.println(num); // version 2? for (int num = 55; num <= 65; num++) System.out.println(num); // version 3? for (int num = 55; num < 65; num++) System.out.println(num);

How about 10 even numbers from 2? for (int num = ?; ?; ?) System.out.println(num);

How about 10 even numbers from 2? // version 1? for (int num = 2; num <= 20; num=num+2) System.out.println(num); // version 2? for (int num = 2; num <= 18; num=num+2) System.out.println(num); // version 3? for (int num = 2; num < 20; num=num+2) System.out.println(num);

How about 10 even numbers down from 100? for (int num= ? ; ?; ?) System.out.println(num);

How about 10 even numbers down from 100? // version 1? for (int num=100; num >= 80; num=num-2) System.out.println(num); // version 2? for (int num=100; num >= 82; num=num-2) System.out.println(num); // version 3? for (int num=100; num > 82; num=num-2) System.out.println(num);

Anything that is strange? for (int num=10; num < 10; num++) System.out.println(num);

Anything that is strange? for (int num=10; num < 10; num++) System.out.println(num); continue is never true, body never executes

Anything that is strange? for (int num=10; num >= 10; num++) System.out.println(num);

Anything that is strange? for (int num=10; num >= 10; num++) System.out.println(num); Continue is always true, infinite loop (eventually stops since int has an upper limit and num overflows)

Finding Sum of 1 to 10 int sum = 0; for (int num = 1; num <= 10; num++) sum = sum + num;

Finding Sum of 1 to 10 int sum = 0; for (int num = 1; num <= 10; num++) sum = sum + num; // --- version 2 ? --- int sum = 0; for (int num = 1; num < 10; num++) sum = sum + num;

Sum of first 10 even numbers int sum = 0; for (int num = ?; ? ; ?) sum = sum + num;

Sum of first 10 even numbers int sum = 0; for (int num = 0; num <= 18; num = num + 2) sum = sum + num;

Printing a Line of 5 Stars for (int star = 1; star <= 5; star++) { System.out.print(’*’); } System.out.println(); // new line // --- output: --- *****

Printing a Line of 5 Stars for (int star = 1; star <= 5; star++) { System.out.print(’*’); } System.out.println(); // new line // --- version 2 ? --- for (int star = 0; star < 5; star++) { System.out.print(’*’); } System.out.println(); // new line

4x5 Rectangle of Stars ?? for (int star = 1; star <= 5; star++)//5 stars { System.out.print(’*’); } System.out.println(); // --- Output: --- *****

4x5 Rectangle of Stars – nested loop for (int line = 1; line <= 4; line++) //4 lines { for (int star = 1; star <= 5; star++)//5 stars { System.out.print(’*’); } System.out.println(); } // --- Output: --- *****

Triangle of Stars * ** *** **** *****

“While” loop int num = 1, sum = 0; while (num <= 10) { sum = sum + num; num++; } initialize while (continue) // repeat if continue is true { update }

A program with an exit command boolean exit = false; while (exit == false) { // do stuff if ( //exit command is entered ) exit = true; }

Is num a prime number?

Definition  Only divisible by 1 or itself Check factors between 2 and num – 1 to see if num is divisible by factor Don’t need check factors larger than num

Checking Different Factors Initialize  Start factor with 2 Continue  Factor is less than num  num is not divisible by factor Update  Increment factor

in Java // I: start factor with 2 int factor = 2; // C: factor less than num and // num not divisible by factor while (factor < num && num % factor != 0) { factor++; // U: increment factor }

But how do we print out the answer? // I: start factor with 2 int factor = 2; // C: factor less than num and // num not divisible by factor while (factor < num && num % factor != 0) { factor++; // U: increment factor } System.out.println(?);

Print the answer as well // I: start factor with 2 int factor = 2; // C: factor less than num and // num not divisible by factor while (factor < num && num % factor != 0) { factor++; // U: increment factor } if (factor == num) // not divisible by smaller factors System.out.println(“prime”); else System.out.println(“not prime”);

“Do-While” loop Execute the loop body at least once continue is checked after the loop body is executed initialize do { update } while (continue); // repeat if continue is true // note the semicolon at the end

Checking input int numTickets = 0; do { System.out.print(”Please enter # of tickets: ”); numtickets = keyboard.nextInt(); } while (numTickets <= 0);

Checking Password String username = ””, password = ””; do { System.out.print(”Please enter username: ”); username = keyboard.next(); System.out.print(”Please enter password: ”); password = keyboard.next(); } while (!valid(username, password));

How to add at most 3 Trials? String username = ””, password = ””; do { System.out.print(”Please enter username: ”); username = keyboard.next(); System.out.print(”Please enter password: ”); password = keyboard.next(); } while (!valid(username, password));

At most 3 Trials String username = ””, password = ””; int trials=0; do { System.out.print(”Please enter username: ”); username = keyboard.next(); System.out.print(”Please enter password: ”); password = keyboard.next(); trials++; } while (!valid(username, password) && trials < 3);