Selection and Repetition

Similar documents
Selection and Repetition Revisited

Selection and Repetition

Selection and Repetition Revisited

Selection Statements and operators

Selection Statements and operators

Java I/O and Control Structures Algorithms in everyday life

Java I/O and Control Structures

CSC 1051 Data Structures and Algorithms I

CSC 1051 Villanova University. CSC 1051 Data Structures and Algorithms I. Course website:

CSC 1051 Algorithms and Data Structures I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

CSC 1051 Data Structures and Algorithms I

CSC 1051 Data Structures and Algorithms I

Algorithms and Conditionals

CSC 1051 Algorithms and Data Structures I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Control flow, conditionals, boolean expressions, block statements, nested statements. Course website:

Improved algorithm. Java code. Control flow and conditionals CSC 1051 Villanova University. Dr Papalaskari 1. Java Programè Algorithm

Java code. Updated program. Control flow and conditionals CSC 1051 Villanova University. Dr Papalaskari 1. Java Programè Algorithm. Improved algorithm

COMP 202. Programming With Iterations. CONTENT: The WHILE, DO and FOR Statements. COMP Loops 1

Algorithms and Java basics: pseudocode, variables, assignment, and interactive programs

Conditional Statements

Algorithms and Java basics: pseudocode, variables, assignment, and interactive programs

Introduction to Arrays

Program Development. Java Program Statements. Design. Requirements. Testing. Implementation

Algorithms in everyday life. Algorithms. Algorithms and Java basics: pseudocode, variables, assignment, and interactive programs

Java Flow of Control

2: Basics of Java Programming

Algorithms in everyday life. Algorithms. Algorithms and Java basics: pseudocode, variables, assignment, and interactive programs

Using Classes and Objects

Chapter 3. Selections

Java Bootcamp - Villanova University. CSC 2014 Java Bootcamp. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

CSCI 2010 Principles of Computer Science. Basic Java Programming. 08/09/2013 CSCI Basic Java 1

Basics of Java Programming variables, assignment, and input

Iterators and File Input

Arrays, Part 3: Multidimensional arrays

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Top-Down Program Development

COMP-202 Unit 4: Programming With Iterations. CONTENTS: The while and for statements

CSC 1051 Algorithms and Data Structures I. Midterm Examination February 24, Name: KEY 1

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 6, Name:

Conditionals and Loops Chapter 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Name: Checked: Preparation: Response time experiment accessing the system clock

Lecture 3: Variables and assignment

Designing Classes. Where do objects come from? Where do objects come from? Example: Account datatype. Dr. Papalaskari 1

Conditionals and Loops

I/O Streams. program. Standard I/O. File I/O: Setting up streams from files. program. File I/O and Exceptions. Dr. Papalaskari 1

I/O Streams. program. Standard I/O. File I/O: Setting up streams from files. program. File I/O and Exceptions. Dr. Papalaskari 1

I/O Streams. program. Standard I/O. File I/O: Setting up streams from files. program. File I/O and Exceptions. Dr. Papalaskari 1

Control Structures in Java if-else and switch

Where do objects come from? Good question!

CS 106 Introduction to Computer Science I

CompSci 125 Lecture 11

Data Representation Classes, and the Java API

File I/O and Exceptions

CSC 1051 Algorithms and Data Structures I. Final Examination May 2, Name:

Arrays - Review. Initializer Lists. The for-each Loop. Arrays, Part 2. Dr. Papalaskari 1. CSC 1051 Data Structures and Algorithms I

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

Chapter 4 Loops. int x = 0; while ( x <= 3 ) { x++; } System.out.println( x );

Conditional Programming

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Last Class. While loops Infinite loops Loop counters Iterations

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Java Coding 3. Over & over again!

BLOCK STRUCTURE. class block main method block do-while statement block if statement block. if statement block. Block Structure Page 1

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

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

Introduction to Computer Science Unit 2. Exercises

LAB 4.1 Relational Operators and the if Statement

CS111: PROGRAMMING LANGUAGE II

CSC 1051 Algorithms and Data Structures I. Final Examination May 12, Name

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 7, Name:

Programming: Java. Chapter Objectives. Control Structures. Chapter 4: Control Structures I. Program Design Including Data Structures

CMPT 125: Lecture 4 Conditionals and Loops

Using Classes and Objects

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

Topic 11 Scanner object, conditional execution

Loops / Repetition Statements. There are three loop constructs in C. Example 2: Grade of several students. Example 1: Fixing Bad Keyboard Input

Introduction to Computer Science Unit 2. Notes

Control Structures in Java if-else and switch

Introduction to Computer Science, Shimon Schocken, IDC Herzliya. Lectures Control Structures

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

Using Classes and Objects

Introduction to Computer Science Unit 2. Notes

Repetition CSC 121 Fall 2014 Howard Rosenthal

1 Short Answer (10 Points Each)

Chapter. Let's explore some other fundamental programming concepts

AP CS Unit 3: Control Structures Notes

Introduction. C provides two styles of flow control:

COE 212 Engineering Programming. Welcome to Exam II Thursday April 21, Instructors: Dr. Salim Haddad Dr. Joe Tekli Dr. Wissam F.

Flow of Control. Chapter 3

Lectures 3-1, 3-2. Control Structures. Control Structures, Shimon Schocken IDC Herzliya, slide 1

Introduction to Java Applications

Chapter 4: Conditionals and Loops

Introduction to Classes and Objects Pearson Education, Inc. All rights reserved.

Repe$$on CSC 121 Spring 2017 Howard Rosenthal

class declaration Designing Classes part 2 Getting to know classes so far Review Next: 3/18/13 Driver classes:

CONTENTS: Compilation Data and Expressions COMP 202. More on Chapter 2

Flow of Control. Chapter 3. Chapter 3 1

Data Conversion & Scanner Class

Repe$$on CSC 121 Fall 2015 Howard Rosenthal

Transcription:

Selection and Repetition Revisited 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/ Selection structures in Java Conditional : if (n > 0) System.out.print("positive"); else System.out.print("negative"); Other selection structures (Chapter 6 in text) the al operator the switch Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus The Conditional Operator Syntax? expression1 : expression2 If the is, expression1 is ; if it is, expression2 is The al operator is not a (n > 0)? System.out.print("positive"): System.out.print("negative"); WRONG! The value of the entire al operator is the value of the selected expression Example: Rewrite this à if (n > 0) else System.out.print("positive"); System.out.print("negative"); Dr. Papalaskari 1

More examples: Try this: int bit = (ans.equalsignorecase("yes")? 1: 0); String status = (age < 18? "child" : "adult"); The al operator requires three operands so it is sometimes called the ternary operator Using if/else: if (HAPPY) else page.drawarc (x+15, y+30, 20, 10, 180, 180); page.drawarc (x+15, y+30, 20, 10, 0, 180); Rewrite using al operator: HAPPY == HAPPY == Hands on: try this in the Person class! Try this: The switch Statement: multi-way branches Recall: Logic of an if-else Rewrite this so that "Dime" is printed if num equals 1. System.out.println ("Your change is " + num + "Dimes")); use al operator: Dr. Papalaskari 2

The switch Statement: multi-way branches switch logic 1 case: 1 expression case: 2 2 case: 3 3 Note: this is a simplified flowchart of the logic of the switch The switch Statement - example public String tostring() String result = ""; switch (facevalue) case 1: result = "one"; case 2: result = "two"; case 3: result = "three"; return result; Hands on: try this in the Die class! The switch Statement in general switch ( expression ) case value1 : -list1 case value2 : -list2 case value3 : -list3... default: -list-n integer, char, or enumerated types (Java 7 also allows Strings) NO floating point values NO ranges of values (eg: 0<x<10) If expression matches value2, control jumps to here If none of the values match the expression, control jumps to here So the logic of the switch is more like this: s1 1 expression s2 2 3 s3 Note: this is still a simplified flowchart of the logic of the switch Dr. Papalaskari 3

GradeReport.java // GradeReport.java Author: Lewis/Loftus // // Demonstrates the use of a switch. import java.util.scanner; public class GradeReport // Reads a grade from the user and prints comments accordingly. int grade, category; continue Scanner scan = new Scanner (System.in); System.out.print ("Enter a numeric grade (0 to 100): "); grade = scan.nextint(); category = grade / 10; System.out.print ("That grade is "); Sample Run continue Enter a numeric grade (0 to 100): 91 switch (category) That grade is well above average. Excellent. case 10: System.out.println ("a perfect score. Well ne."); case 9: System.out.println ("well above average. Excellent."); case 8: System.out.println ("above average. Nice job."); case 7: System.out.println ("average."); case 6: System.out.println ("below average. You should see the"); System.out.println ("instructor to clarify the material " + "presented in class."); default: System.out.println ("not passing."); Hands on: try removing one of the break s *** // SwitchExample.java Author: M A Papalaskari // Example of switch that es NOT use break after each case. *** import java.util.scanner; public class SwitchExample // Example of using a switch. Counts number of digits, zeros, // whitespace, and others in a line of input. Scanner scan = new Scanner(System.in); int digits = 0, zeros = 0, whitespace = 0, other = 0; System.out.print("Input line>"); String message = scan.nextline(); continue Another example Sample Run¼¼ SwitchExample.java Input line>10, 9, 8, 7, 6, 5, 4, 3, 2, 1, Lift off! 11 Digits, of which 1 is a zero 11 whitespace 18 others while (count < message.length()) switch (message.charat(count)) case '0': zeros++; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': digits++; case ' ': case '\t : whitespace++; default: other++; // end switch // end while System.out.print(digits + " Digit" + (digits==1? "" : "s")); System.out.print(", of which " + zeros); System.out.println((zeros==1? " is a zero " : " are zeros ")); System.out.println(whitespace + " whitespace"); System.out.println(other + " other" + (other==1? "" : "s")); Dr. Papalaskari 4

Loops revisited: & for loops Repetition structures in Java, so far: while loop: Other repetition structures (Chapter 6 in text) the loop the for loop The Statement in Java A has the following syntax: -list; while (); //end The -list is executed once initially, and then the is The -list is executed repeatedly until the becomes The while and loops are similar. Similar but not the same: while Loop Loop ; ; The body of a loop executes at least once Dr. Papalaskari 5

Try this: Write a loop to print the even numbers from 2 to 100. For some things the loop is more appropriate: System.out.println( input a number >5 ); int num = scan.nextint(); while (num <= 5) System.out.println ( type a number >5 ); num = scan.nextint(); System.out.println ( type a number >5 ); num = scan.nextint(); while (num <= 5); input validation For some things the loop is more appropriate: int answer = 1; while (answer == 1) System.out.print( Enter QP "); System.out.print( Enter QP "); qp = scan.nextint(); qp = scan.nextint(); System.out.print ("Enter Credits "); System.out.print ("Enter Credits "); credits = scan.nextint(); credits = scan.nextint(); gpa = (uble) qp /credits; gpa = (uble) qp /credits; System.out.println("GPA = " + gpa); System.out.println("GPA = " + gpa); System.out.print("Again? 1=yes,0=no "); System.out.print("Again? 1=yes,0=no "); answer = scan.nextint()); while (1 == scan.nextint()); System.out.println("Thank you. Goodbye."); System.out.println("Thank you. Goodbye."); repeating a computation Another example: ReverseNumber.java // ReverseNumber.java Author: Lewis/Loftus Sample Run // Demonstrates the use of a loop. Enter a positive integer: 2896 import java.util.scanner; That number reversed is 6982 public class ReverseNumber // Reverses the digits of an integer mathematically. int number, lastdigit, reverse = 0; Scanner scan = new Scanner (System.in); System.out.print ("Enter a positive integer: "); number = scan.nextint(); lastdigit = number % 10; reverse = (reverse * 10) + lastdigit; number = number / 10; while (number > 0); System.out.println ("That number reversed is " + reverse); Copyright 2012 Pearson Education, Inc. Dr. Papalaskari 6

Another example: EvenOdd.java /******************************************************************** // EvenOdd.java Author: Lewis/Loftus // Demonstrates the use of the JOptionPane class. The JOptionPane class provides methods for import javax.swing.joptionpane; creating dialog boxes public class EvenOdd // Determines if the value input by the user is even or odd. // Uses multiple dialog boxes for user interaction. String numstr, result; int num, again; numstr = JOptionPane.showInputDialog ("Enter an integer: "); num = Integer.parseInt(numStr); result = "That number is " + ((num%2 == 0)? "even" : "odd"); /******************************************************************** // EvenOdd.java Author: Lewis/Loftus // Demonstrates the use of the JOptionPane class. import javax.swing.joptionpane; public class EvenOdd // Determines if the value input by the user is even or odd. // Uses multiple dialog boxes for user interaction. String numstr, result; int num, again; numstr = JOptionPane.showInputDialog ("Enter an integer: "); num = Integer.parseInt(numStr); result = "That number is " + ((num%2 == 0)? "even" : "odd"); JOptionPane.showMessageDialog (null, result); again = JOptionPane.showConfirmDialog (null, "Do Another?"); while (again == JOptionPane.YES_OPTION); Copyright 2012 Pearson Education, Inc. JOptionPane.showMessageDialog (null, result); again = JOptionPane.showConfirmDialog (null, "Do Another?"); while (again == JOptionPane.YES_OPTION); Copyright 2012 Pearson Education, Inc. for: a loop with built in counter for: a loop with built in counter initialization initialization Example increment increment Dr. Papalaskari 7

for: a loop with built in counter initialization for ( count < 5; count++) Example The for Statement A for loop is functionally equivalent to the following while loop structure: initialization; while ( ) ; increment; increment for ( initialization ; ; increment ) ; The for Statement The for Statement - Example A for has the following syntax: A for has the following syntax: The initialization is executed once before the loop begins The is tested after the initialization and again before each iteration; The initialization is executed once before the loop begins The is tested after the initialization and again before each iteration; for ( initialization ; ; increment ) ; for ( count < 5; count++) the is executed while The is The increment is executed at the end of each iteration the is executed while The is The increment is executed at the end of each iteration Dr. Papalaskari 8

The for Statement The increment section can perform any calculation: Try this: Write a for loop to print the even numbers from 2 to 100. for (int num=100; num > 0; num -= 5) System.out.println (num); A for loop is well suited for executing s a specific number of times that can be calculated or determined in advance Example: ReverseNumberAsString.java // ReverseNumberAsString.java Author: MAP // Demonstrates the use of a for loop. import java.util.scanner; Sample Run public class ReverseNumberAsString Enter a positive integer: 2896 That number reversed is 6982 // Reverses the digits of an integer viewed as a String. int number; String reverse = ""; Scanner scan = new Scanner (System.in); System.out.print ("Enter a positive integer: "); number = scan.nextint(); String original = Integer.toString(number); for (int i=0; i<original.length(); i++) reverse = original.charat(i) + reverse; System.out.println ("That number reversed is " + reverse); Example: Stars.java // Stars.java Author: Lewis/Loftus // // Demonstrates the use of nested for loops. public class Stars // Prints a triangle shape using asterisk (star) characters. final int MAX_ROWS = 10; for (int row = 1; row <= MAX_ROWS; row++) for (int star = 1; star <= row; star++) System.out.print ("*"); System.out.println(); Output * ** *** **** ***** ****** ******* ******** ********* ********** Exercise: can you make it print the row number in (1, 2, 3 ) at the beginning of each line? Dr. Papalaskari 9