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

Java I/O and Control Structures Algorithms in everyday life

CSC 1051 Data Structures and Algorithms I

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

CSC 1051 Data Structures and Algorithms I

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 Algorithms and Data Structures I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Algorithms and Conditionals

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

Conditional Statements

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

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

Introduction to Arrays

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

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

Java Flow of Control

Using Classes and Objects

2: Basics of Java Programming

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

Chapter 3. Selections

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

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

Basics of Java Programming variables, assignment, and input

Top-Down Program Development

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

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

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

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

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

File I/O and Exceptions

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

Lecture 3: Variables and assignment

Last Class. While loops Infinite loops Loop counters Iterations

CS111: PROGRAMMING LANGUAGE II

Introduction to Computer Science Unit 2. Exercises

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

Java Coding 3. Over & over again!

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

Control Structures in Java if-else and switch

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

CompSci 125 Lecture 11

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

CMPT 125: Lecture 4 Conditionals and Loops

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

Data Representation Classes, and the Java API

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

Conditional Programming

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

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

Repetition CSC 121 Fall 2014 Howard Rosenthal

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

Introduction to Computer Science Unit 2. Notes

Chapter. Let's explore some other fundamental programming concepts

CSC 1051 Algorithms and Data Structures I. Midterm Examination March 1, Name: KEY A

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

Repe$$on CSC 121 Spring 2017 Howard Rosenthal

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

Topic 11 Scanner object, conditional execution

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

Control Structures in Java if-else and switch

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

Repe$$on CSC 121 Fall 2015 Howard Rosenthal

Introduction to Computer Science Unit 2. Notes

AP CS Unit 3: Control Structures Notes

Using Classes and Objects

COE 211/COE 212 Computer/Engineering Programming. Welcome to Exam II Thursday December 20, 2012

COMP 202 Java in one week

Module 3 SELECTION STRUCTURES 2/15/19 CSE 1321 MODULE 3 1

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

Chapter 4: Conditionals and Loops

Data Conversion & Scanner Class

Instructor: SIR MUHAMMAD NAVEED Created by: ARSLAN AHMED SHAAD ( ) MUHAMMAD BILAL ( ) ISIT:

Assignment 2.4: Loops

COMP 202. Java in one week

CSC 1051 Algorithms and Data Structures I. Final Examination May 12, Name: KEY. Question Value Score

Using Classes and Objects

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

Introduction to Java & Fundamental Data Types

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

CSC141, Computer Science I, Instructor: Dr. Zhen Jiang, Test 2

CSE 1223: Introduction to Computer Programming in Java Chapter 3 Branching

CSC 1051 Algorithms and Data Structures I. Midterm Examination February 25, Name: KEY A

Selection Control Structure CSC128: FUNDAMENTALS OF COMPUTER PROBLEM SOLVING

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

Programming with Java

LAB 4.1 Relational Operators and the if Statement

Introduction to Java Applications

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 statement: if (n > 0) System.out.print("positive"); else System.out.print("negative"); Other selection structures (Chapter 6 in text) the conditional operator the switch statement Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus The Conditional Operator Syntax condition? expression1 : expression2 If the condition is true, expression1 is ; if it is false, expression2 is The conditional operator is not a statement (n > 0)? System.out.print("positive"): System.out.print("negative"); WRONG! The value of the entire conditional 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 conditional operator requires three operands so it is sometimes called the ternary operator Rewrite this statement so that "Dime" is printed if num equals 1. System.out.println ("Your change is " + num + "Dimes")); use conditional operator: The switch Statement: multi-way branches Recall: Logic of an if-else statement The switch Statement: multi-way branches switch statement logic expression statement1 case: 1 case: 2 statement2 case: 3 statement3 Note: this is a simplified flowchart of the logic of the switch statement Dr. Papalaskari 2

The switch Statement - example Ranm rand = new Ranm(); int number = rand.nextint(3) + 1; String word = ""; switch (number) case 1: word = "one"; case 2: word = "two"; case 3: word = "three"; System.out.println( You are my number + word); The switch Statement in general switch ( expression ) case value1 : statement-list1 case value2 : statement-list2 case value3 : statement-list3... default: statement-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: GradeReport.java // GradeReport.java Author: Lewis/Loftus // // Demonstrates the use of a switch statement. statements1 1 expression statements2 2 3 statements3 import java.util.scanner; public class GradeReport // Reads a grade from the user and prints comments accordingly. int grade, category; 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 "); Note: this is still a simplified flowchart of the logic of the switch statement continue Dr. Papalaskari 3

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 statements *** // SwitchExample.java Author: M A Papalaskari // Example of switch statement that es NOT use break after each case. *** import java.util.scanner; public class SwitchExample // Example of using a switch statement. 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")); Loops revisited: & for loops Repetition structures in Java, so far: while loop: while (count < 5) Other repetition structures (Chapter 6 in text) the loop the for loop Dr. Papalaskari 4

The Statement in Java The while and loops are similar. A statement has the following syntax: statement-list; while (condition); //end The statement-list is executed once initially, and then the condition is The statement-list is executed repeatedly until the condition becomes false while (count < 5) while (count < 5); Similar but not the same: while Loop Loop Try this: Write a loop to print the even numbers from 2 to 100. condition true statement while (count < 5) false true statement condition false while (count < 5); The body of a loop executes at least once Dr. Papalaskari 5

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 int answer = 1; while (answer == 1) For some things the loop is more appropriate: System.out.print ("Enter Credits "); credits = scan.nextint(); System.out.print( Enter QP "); qp = scan.nextint(); gpa = (uble) qp /credits; System.out.println("GPA = " + gpa); System.out.print("Again? 1=yes,0=no "); answer = scan.nextint()); System.out.println("Thank you. Goodbye."); System.out.println("Thank you. Goodbye."); System.out.print ("Enter Credits "); credits = scan.nextint(); System.out.print( Enter QP "); qp = scan.nextint(); gpa = (uble) qp /credits; System.out.println("GPA = " + gpa); System.out.print("Again? 1=yes,0=no "); answer = scan.nextint()); while (answer == 1); 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. for: a loop with built in counter initialization condition true statement increment for ( count < 5; count++) false while (count < 5) Example Dr. Papalaskari 6

The for Statement A for loop is functionally equivalent to the following while loop structure: initialization; while ( condition ) statement; increment; for ( initialization ; condition ; increment ) statement; The for Statement A for statement has the following syntax: The initialization is executed once before the loop begins The condition is tested after the initialization and again before each iteration; for ( initialization ; condition ; increment ) statement; the statement is executed while The condition is true The increment is executed at the end of each iteration The for Statement - Example A for statement has the following syntax: The initialization is executed once before the loop begins The condition is tested after the initialization and again before each iteration; for ( count < 5; count++) The for Statement The increment section can perform any calculation: for (int num=100; num > 0; num -= 5) System.out.println (num); A for loop is well suited for executing statements a specific number of times that can be calculated or determined in advance the statement is executed while The condition is true The increment is executed at the end of each iteration Dr. Papalaskari 7

Try this: Write a for loop to print the even numbers from 2 to 100. 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 8