Chapter 3. Selections

Similar documents
Algorithms and Conditionals

Conditionals and Loops

Java I/O and Control Structures

Conditional Programming

Java I/O and Control Structures Algorithms in everyday life

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

Java Flow of Control

BRANCHING if-else statements

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

Selections. CSE 114, Computer Science 1 Stony Brook University

CSC 1051 Data Structures and Algorithms I

Chapter 4: Conditionals and Loops

Chapter 3 Selections. 3.1 Introduction. 3.2 boolean Data Type

CS1150 Principles of Computer Science Boolean, Selection Statements

Review Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Motivations. Chapter 3: Selections and Conditionals. Relational Operators 8/31/18. Objectives. Problem: A Simple Math Learning Tool

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

Selection Statements and operators

Program Development. Chapter 3: Program Statements. Program Statements. Requirements. Java Software Solutions for AP* Computer Science A 2nd Edition

CONDITIONAL EXECUTION

Chapter 3: Program Statements

Chapter 4: Control Structures I

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

Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups:

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

Chapter 3 Selection Statements

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

Chapter 4: Conditionals and Loops

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

Selection Statements and operators

Topics. Chapter 5. Equality Operators

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

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

Selection and Repetition Revisited

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

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

JAVA OPERATORS GENERAL

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

Program Control Flow

Program Control Flow

Course Outline. Introduction to java

Computer Programming, I. Laboratory Manual. Experiment #3. Selections

More Programming Constructs -- Introduction

Introduction to OOP with Java. Instructor: AbuKhleif, Mohammad Noor Sep 2017

Chapter 4: Conditionals and Loops

Programming with Java

Java Coding 3. Over & over again!

CMPT 125: Lecture 4 Conditionals and Loops

Selections. EECS1021: Object Oriented Programming: from Sensors to Actuators Winter 2019 CHEN-WEI WANG

Outline. Overview. Control statements. Classes and methods. history and advantage how to: program, compile and execute 8 data types 3 types of errors

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

Lesson 7 Part 2 Flags

Introduction to Computer Science Unit 2. Exercises

Conditional Statements

Chapter 3: Operators, Expressions and Type Conversion

More Things We Can Do With It! Overview. Circle Calculations. πr 2. π = More operators and expression types More statements

Selection and Repetition

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

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

COMP 202 Java in one week

Chapter 3. More Flow of Control. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Full file at

Selection and Repetition Revisited

Lecture 1 Java SE Programming

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

Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups:

Repe$$on CSC 121 Fall 2015 Howard Rosenthal

CSC 1051 Algorithms and Data Structures I. Midterm Examination February 26, Name: Key

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

Lab 8: IF statement. Conditionals and Loops. Copyright 2012 Pearson Education, Inc.

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

ECE 122 Engineering Problem Solving with Java

Repe$$on CSC 121 Spring 2017 Howard Rosenthal

Operators. Java operators are classified into three categories:

Oct Decision Structures cont d

Java Foundations: Introduction to Program Design & Data Structures, 4e John Lewis, Peter DePasquale, Joseph Chase Test Bank: Chapter 2

Basic computer skills such as using Windows, Internet Explorer, and Microsoft Word. and Java. Chapter 2 Primitive Data Types and Operations

Introduction to Java Applications

Loops. CSE 114, Computer Science 1 Stony Brook University

CCHAPTER SELECTION STATEMENTS HAPTER 3. Objectives

Operators in java Operator operands.

Control Structures in Java if-else and switch

STUDENT LESSON A12 Iterations

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

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

Introduction to C Programming

Handout 4 Conditionals. Boolean Expressions.

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

Java Programming Language. 0 A history

Java Review. Java Program Structure // comments about the class public class MyProgram { Variables

Prof. Navrati Saxena TA: Rochak Sachan

In Java, data type boolean is used to represent Boolean data. Each boolean constant or variable can contain one of two values: true or false.

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003

Pace University. Fundamental Concepts of CS121 1

JAVA PROGRAMMING LAB. ABSTRACT In this Lab you will learn to define and invoke void and return java methods

In this chapter, you will:

Selection and Repetition

2.8. Decision Making: Equality and Relational Operators

Chapter 2. Elementary Programming

Introduction to Computer Science Unit 2. Notes

Transcription:

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 Control The order of statement execution is called the flow of control Unless specified otherwise, the order of statement execution through a method is linear (sequential): one statement after another in sequence Some programming statements allow us to: decide whether or not to execute a particular statement execute a statement over and over, repetitively These selection (decision) statements are based on boolean expressions (or conditions) that evaluate to true or false 3

2. Selection Statements A Selection (conditional) statement allows us to choose which statement (or block of statements) will be executed next. Java selection statements are: if statement - allows one option if-else statement - allows two options switch statement - allows multiple options 4

3. The if Statement The if statement has the following syntax: if is a Java reserved word The condition must be a boolean expression. It must evaluate to either true or false. if (condition) { statementblock; ; If the condition is true, the statementblock is executed. If it is false, the statementblock is skipped. 5

Logic of if statement Statement condition evaluated 1 int grade = 70; 2 if (grade>= 90) 3 System.out.println("You got an "A"); 4 System.out.println("This is line 4"); true false Statement Block Statement 1 int grade = 95; 2 if (grade>= 90) 3 System.out.println("You got an "A"); 4 System.out.println("This is line 4"); 6

Boolean Expressions A condition often uses one of Java's equality operators or relational operators, which all return boolean results: == equal to!= not equal to < less than > greater than <= less than or equal to >= greater than or equal to Note the difference between the equality operator (==) and the assignment operator (=) 7

Example - if Statement An example of an if statement: if (sum > MAX) delta = sum - MAX; System.out.println ("The sum is " + sum); First, the condition is evaluated -- the value of sum is either greater than the value of MAX, or it is not If the condition is true, the assignment statement is executed -- if it isn t (i.e., false), the assignment statement is skipped. Either way, the call to println is executed next See Age.java next slide 8

Example - if Statement // Age.java import java.util.scanner; public class Age { public static void main (String[] args) { final int MINOR = 21; Scanner scan = new Scanner (System.in); System.out.print ("Enter your age: "); int age = scan.nextint(); System.out.println ("You entered: " + age); if (age < MINOR) System.out.println ("Youth is a wonderful thing. Enjoy!"); System.out.println ("Age is a state of mind."); 9

Indentation The statement controlled by the if statement is indented to indicate that relationship The use of a consistent indentation style makes a program easier to read and understand Although it makes no difference to the compiler, proper indentation is crucial for code readability and debugging 10

Expressions What do the following statements do? if (top >= MAXIMUM) top = 0; //next statement starts here Sets top to zero if the current value of top is greater than or equal to the value of MAXIMUM if (total!= stock + warehouse) inventoryerror = true; // next statement starts here Sets a flag to true if the value of total is not equal to the sum of stock and warehouse Note: the precedence of arithmetic operators is higher than the precedence of equality and relational operators. 11

Logical Operators Boolean expressions can also use the following logical operators:! Logical NOT && Logical AND Logical OR ^ Logical XOR (exclusive OR) They all take boolean operands and produce boolean results Logical NOT is a unary operator (it operates on one operand) Logical AND, OR, and XOR are binary operators (each operates on two operands) 12

Logical Operators The logical NOT operation is also called logical negation or logical complement If some boolean condition a is true, then!a is false; if a is false, then!a is true Logical expressions can be shown using a truth table boolean a!a true false false true 13

Logical Operators The logical AND expression a && b is true if both a and b are true, and false otherwise The logical OR expression a b is true if a or b or both are true, and false otherwise The logical XOR expression a ^ b is true if and only if a and b are different. 14

Logical Operators A truth table shows all possible true-false combinations of the terms Since &&,, and ^ each have two operands, there are four possible combinations of a and b (boolean expressions) a b a && b a b a ^ b true true true true false true false false true true false true false true true false false false false false 15

Boolean Expressions Expressions that use logical operators can form complex conditions if (total < MAX + 5 &&!found) System.out.println ("Processing "); Mathematical operators have higher precedence than the Relational and Logical operators Relational operators have higher precedence than Logical operators 16

Boolean Expressions Specific expressions can be evaluated using truth tables Given X = total < MAX &&!found What is the values of X? total < MAX!found X = total < MAX &&!found true true true true false false false true false false false false 17

Operator Precedence var++, var-- ++var, --var Postfix increment Prefix increment +, - unary operators (type) Casting and parenthesis! Not *, /, % Math operators +, - Math operators <, <=, >, >= Relational operators ==,!= Relational equality ^ Exclusive OR && Logical AND Logical OR =, +=, -=, *=, /=, %= Assignment operators 18

Operator Precedence Applying operator precedence and associativity rule to the expression: 3 + 4 * 4 > 5 * (4 + 3) - 1 3 + 4 * 4 > 5 * (4 + 3) - 1 3 + 4 * 4 > 5 * 7 1 3 + 16 > 5 * 7 1 3 + 16 > 35 1 19 > 35 1 19 > 34 false (1) inside parentheses first (2) multiplication (3) multiplication (4) addition (5) subtraction (6) greater than 19

4. The if-else Statement An else clause can be added to an if statement to make an if-else statement if ( condition ) statementblock1; else statementblock2; If the condition is true, statementblock1 is executed; if the condition is false, statementblock2 is executed One or the other will be executed, but not both 20

Logic of an if-else statement Statement condition evaluated true false StatementBlock1 StatementBlock2 Statement 21

Trace if-else statement Suppose score is 70.0 The condition is false if (score >= 90.0) System.out.print("A"); else if (score >= 80.0) System.out.print("B"); else if (score >= 70.0) System.out.print("C"); else if (score >= 60.0) System.out.print("D"); else System.out.print("F"); 22

Trace if-else statement Suppose score is 70.0 The condition is false if (score >= 90.0) System.out.print("A"); else if (score >= 80.0) System.out.print("B"); else if (score >= 70.0) System.out.print("C"); else if (score >= 60.0) System.out.print("D"); else System.out.print("F"); 23

Trace if-else statement Suppose score is 70.0 The condition is true if (score >= 90.0) System.out.print("A"); else if (score >= 80.0) System.out.print("B"); else if (score >= 70.0) System.out.print("C"); else if (score >= 60.0) System.out.print("D"); else System.out.print("F"); 24

Trace if-else statement Suppose score is 70.0 grade is C if (score >= 90.0) System.out.print("A"); else if (score >= 80.0) System.out.print("B"); else if (score >= 70.0) System.out.print("C"); else if (score >= 60.0) System.out.print("D"); else System.out.print("F"); 25

Trace if-else statement Suppose score is 70.0 Exit the if statement if (score >= 90.0) System.out.print("A"); else if (score >= 80.0) System.out.print("B"); else if (score >= 70.0) System.out.print("C"); else if (score >= 60.0) System.out.print("D"); else System.out.print("F"); See Wages.java example next slide. 26

Example // Wages.java import java.text.numberformat; import java.util.scanner; public class Wages { public static void main (String[] args) { final double RATE = 8.25; //regular pay rate final int STANDARD = 40; //weekly hours Scanner scan = new Scanner (System.in); //scanner object double pay = 0.0; // initialization System.out.print ("Enter the number of hours worked: "); //prompt int hours = scan.nextint(); //read input value System.out.println (); //print blank line // Pay overtime at "time and a half" if (hours > STANDARD) pay = STANDARD * RATE + (hours-standard) * (RATE * 1.5); else pay = hours * RATE; NumberFormat fmt = NumberFormat.getCurrencyInstance();//format System.out.println ("Gross earnings: " + fmt.format(pay));//output 27

Indentation - Revisited Remember that indentation is for the human reader, and is ignored by the computer if (total > MAX) System.out.println ("Error!!"); errorcount++; Despite what is implied by the indentation, the increment will occur whether the condition is true or not 28

Block Statements Several statements can be grouped together into a block statement delimited by braces if (total > MAX) { System.out.println ("Error!!"); errorcount++; // more statements 29

Block Statements In an if-else statement, the if portion, or the else portion, or both, could be block statements if (total > MAX) { System.out.println ("Error!!"); errorcount++; else { System.out.println ("Total: " + total); current = total * 2; See Guessing.java next slide. 30

Example // Guessing.java import java.util.*; public class Guessing { public static void main (String[] args) { final int MAX = 10; int answer, guess; Scanner scan = new Scanner (System.in); //scanner object Random generator = new Random(); //number generator object answer = generator.nextint(max) + 1; //generate a number System.out.print ("I'm thinking of a number between 1" + "and " + MAX + ". Guess what it is: "); guess = scan.nextint(); //read user input if (guess == answer) System.out.println ("You got it! Good guessing!"); else { System.out.println ("That is not correct!"); System.out.println ("The number was " + answer); 31

5. The Conditional Operator Java has a conditional operator that uses a boolean condition to determine which of two expressions is evaluated Its syntax is: condition? expression1 : expression2 If the condition is true, expression1 is evaluated; if it is false, expression2 is evaluated The conditional operator is ternary because it requires three operands 32

The Conditional Operator The conditional operator is similar to an if-else statement, except that it is an expression that returns a value For example: larger = ((num1 > num2)? num1 : num2); If num1 is greater than num2, then num1 is assigned to larger; otherwise, num2 is assigned to larger Same as if (num1 > num2) larger = num1; else larger = num2; 33

The Conditional Operator Another example: System.out.println ("Your change is " + count + ((count == 1)? "Dime" : "Dimes")); If count equals 1, then "Dime" is printed If count is anything other than 1, then "Dimes" is printed 34

Nested if Statements The statement executed as a result of an if statement or else clause could be another if statement These are called nested if statements Java Rule: An else clause is matched to the last unmatched if (no matter what the indentation implies) Braces can be used to specify the if statement to which an else clause belongs See MinOfThree.java next slide 35

Example // MinOfThree.java import java.util.scanner; public class MinOfThree { public static void main (String[] args) { int num1, num2, num3, min = 0; Scanner scan = new Scanner (System.in); System.out.println ("Enter three integers: "); num1 = scan.nextint(); num2 = scan.nextint(); num3 = scan.nextint(); if (num1 < num2) if (num1 < num3) min = num1; else min = num3; if (num1 < num2) min = num1; else min = num2; else if (num2 < num3) min = num2; if (num3 < min) else min = num3; min = num3; System.out.println ("Minimum value: " + min); 36

6. Switch Statement The switch statement provides another way to decide which statement to execute next The switch statement evaluates an expression, then attempts to match the result to one of several possible cases (options) Each case contains a value and a list of statements The flow of control transfers to statement associated with the first case value that matches 37

Syntax The general syntax of a switch statement is: switch and case are reserved words switch (expression) { case value1: statement_list1 break; case value2: statement_list2 break; case value3: statement_list3 break; case... If expression matches value2, control jumps to here default: statement_list 38

break Statement Often a break statement is used as the last statement in each case's statement list A break statement causes control to transfer to the end of the switch statement If a break statement is not used, the flow of control will continue into the next case Sometimes this may be appropriate, but often we want to execute only the statements associated with one case 39

Trace switch statement Suppose day is 2: switch (day) { //day is of type int case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 40

Trace switch statement Match case 2 switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 41

Trace switch statement Match case 2 switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 42

Trace switch statement Fall through case 3 switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 43

Trace switch statement Fall through case 4 switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 44

Trace switch statement Fall through case 5 switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 45

Trace switch statement Printout Weekday switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 46

Trace switch statement Encounter break switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 47

Trace switch statement Exit the statement switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("Weekday"); break; case 6: case 7: System.out.println("Weekend"); 48

Default Case A switch statement can have an optional default case The default case has no associated value and simply uses the reserved word default If the default case is present, control will transfer to the default case if no other case value matches If there is no default case, and no other value matches, control falls through to the statement after the switch statement 49

Example switch (option) //option is of type char { case 'A': acount = acount + 1; break; case 'B': bcount = bcount + 1; break; case 'C': ccount = ccount + 1; break; default: System.out.println ("Invalid Option ") 50

Switch Statement Expression The expression of a switch statement must result in an integer type (byte, short, int, long) or a char type. It cannot be a boolean value or a floating point value (float or double) You cannot perform relational checks with a switch statement See GradeReport.java next slide 51

Example import java.util.scanner; public class GradeReport { public static void main (String[] args) {... Some other code here grade = scan.nextint(); category = grade / 10; System.out.print ("That grade is "); switch (category) { case 10: System.out.println ("a perfect score, well done."); break; case 9: System.out.println ("well above average. Excellent."); break; case 8: System.out.println ("above average. Nice job."); break; case 7: System.out.println ("average."); break; case 6: System.out.println ("below average. Do better!"); break; default: System.out.println ("not passing."); 52

7. Useful Hints if i > 0 { System.out.println("i is positive"); //wrong if (i > 0) { System.out.println("i is positive"); //correct =================================================== if (i > 0) { System.out.println("i is positive"); Same as if (i > 0) System.out.println("i is positive"); 53

Useful Hints Nested if statements and style issue. if (score >= 90.0) grade = 'A'; else if (score >= 80.0) grade = 'B'; else if (score >= 70.0) grade = 'C'; else if (score >= 60.0) grade = 'D'; else grade = 'F'; Equivalen t if (score >= 90.0) grade = 'A'; else if (score >= 80.0) grade = 'B'; else if (score >= 70.0) grade = 'C'; else if (score >= 60.0) grade = 'D'; else grade = 'F'; 54

Useful Hints The else clause matches the most recent if clause in the same block. int i = 1; int j = 2; int k = 3; if (i > j) if (i > k) System.out.println("A"); else System.out.println("B"); Equivalent int i = 1; int j = 2; int k = 3; if (i > j) if (i > k) System.out.println("A"); else System.out.println("B"); if (even == true) System.out.println( "It is even."); Equivalent if (even) System.out.println( "It is even."); 55

Useful Hints Adding a semicolon at the end of an if clause is a common mistake. if (radius >= 0); <=== Wrong { area = radius*radius*pi; System.out.println( "The area for the circle of radius " + radius + " is " + area); This mistake is hard to find, because it is not a compilation error or a runtime error, it is a logical error. 56

8. Using Assertions Assertion is a way to validate assumptions and detect errors to make code more secure and robust. Java supports assertions using assert statement. assert statement can be used to test your assumptions about the program. While executing asset statement, if the assumption believed to be false, Java throws an error named AssertionError and terminates the program. That is, the program execution stops at that point. It is mainly used for testing purpose. 57

assert Statement Syntax Statement syntax: assert expression1; assert expression1 : expression2; Example: validate if salary is positive value. //read and validate salary value int salary = scanner.nextint(); assert salary > 0; OR //read and validate salary value int salary = scanner.nextint(); assert salary > 0 : "Invalid input. Salary must be positive value" 58

Logic of assert Statement Statement Logic: Evaluate exporession1 false Execute expression 2 and stop the program Next Statement true If expression 1 is false (invalid), execute expression 2 and stop program execution. Otherwise continue program execution. Expression 2 can be empty. 59

if Statement vs. assert Statement Statement Statement Evaluate exporession1 Evaluate condition false Execute expression 2 and stop the program true true StatementBlock1 false StatementBlock2 Next Statement Statement assert Statement if statement 60

Assertions - Example 1 import java.util.scanner; //To enable Assertions in JGRASP, //click menu "Build" and check box "Enable Assertions" class AssertionExample{ public static void main( String args[]){ Scanner scanner = new Scanner( System.in); System.out.print("Enter your age (>= 18): "); int age = scanner.nextint(); //check my assumption, quit if value < 18 assert age>=18 : age + " is invalid input for age."; System.out.println("Entered age value is " + age); // other code 61

Assertions - Example 1 Outputs ----jgrasp exec: java -ea AssertionExample Enter your age (>= 18): 20 Entered age value is 20 ----jgrasp: operation complete. ----jgrasp exec: java -ea AssertionExample Enter your age (>= 18): 15 Exception in thread "main" java.lang.assertionerror: 15 is invalid input for age. at AssertionExample.main(AssertionExample.java:15) ----jgrasp wedge2: exit code for process is 1. ----jgrasp: operation complete. 62

Assertions - Example 2 //To enable Assertions in JGRASP, //click menu "Build" and check box "Enable Assertions" import java.util.*; import java.util.scanner; public class AssertionExample2 { public static void main(string args[]) { Scanner scanner = new Scanner(System.in); System.out.print("Enter a number between 0 and 100: "); int value = scanner.nextint(); // validate number value, quit if invalid input assert (value >= 0 && value <= 100) : "Invalid number: " + value; System.out.println("You have entered " + value); // other code 63

Assertions - Example 2 Outputs ----jgrasp exec: java -ea AssertionExample2 Enter a number between 0 and 100: 89 You have entered 89 ----jgrasp: operation complete. ----jgrasp exec: java -ea AssertionExample2 Enter a number between 0 and 100: 125 Exception in thread "main" java.lang.assertionerror: Invalid number: 125 at AssertionExample2.main(AssertionExample2.java:16) ----jgrasp wedge2: exit code for process is 1. ----jgrasp: operation complete. 64

Assertions - Example 3 //To enable Assertions in JGRASP, //click menu "Build" and check box "Enable Assertions" import java.util.scanner; public class AssertionExample3 { public static void main(string args[]) { // other code... // Read and validate input values System.out.println("Please enter 4 grades: "); int grade1 = scan.nextint(); assert (grade1 >= 0 && grade1 <= 100): "invalid grade 1"; int grade2 = scan.nextint(); assert (grade2 >= 0 && grade2 <= 100): "invalid grade 2"; int grade3 = scan.nextint(); assert (grade3 >= 0 && grade3 <= 100): "invalid grade 3"; int grade4 = scan.nextint(); assert (grade4 >= 0 && grade4 <= 100): "invalid grade 4"; // calculates average // Determines the maximum and minimum grades // Validate max and min values, quit if either one is invalid assert (max <= 100 && min >= 0) : "Invalid max or min value"; // Prints the max, min, and average of the grades 65

End of Chapter 3 Slides 66