Logic is the anatomy of thought. John Locke ( ) This sentence is false.

Similar documents
Arithmetic Compound Assignment Operators

Scanner Objects. Zheng-Liang Lu Java Programming 82 / 133

++x vs. x++ We will use these notations very often.

1 class Lecture3 { 2 3 "Selections" // Keywords 8 if, else, else if, switch, case, default. Zheng-Liang Lu Java Programming 88 / 133

1 class Lecture3 { 2 3 "Selections" // Keywords 8 if, else, else if, switch, case, default. Zheng-Liang Lu Java Programming 89 / 137

Example. Write a program which generates 2 random integers and asks the user to answer the math expression.

Example. Generating random numbers. Write a program which generates 2 random integers and asks the user to answer the math expression.

Common Errors double area; 3 if (r > 0); 4 area = r r 3.14; 5 System.out.println(area); 6... Zheng-Liang Lu Java Programming 101 / 141

switch-case Statements

IEEE Floating-Point Representation 1

Arithmetic Compound Assignment Operators

Data Types. 1 You cannot change the type of the variable after declaration. Zheng-Liang Lu Java Programming 52 / 87

false, import, new 1 class Lecture2 { 2 3 "Data types, Variables, and Operators" 4

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

Values in 2 s Complement

false, import, new 1 class Lecture2 { 2 3 "Data types, Variables, and Operators" 4

Example: Monte Carlo Simulation 1

false, import, new 1 class Lecture2 { 2 3 "Data types, Variables, and Operators" 4

1 class Lecture4 { 2 3 "Loops" / References 8 [1] Ch. 5 in YDL 9 / Zheng-Liang Lu Java Programming 125 / 207

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

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

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

false, import, new 1 class Lecture2 { 2 3 "Data types, Variables, and Operators" 4

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

Eng. Mohammed S. Abdualal

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

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

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Simple Control Flow: if-else statements

Exercise (Revisited)

Computer Programming I - Unit 5 Lecture page 1 of 14

Programming with Java

CompSci 125 Lecture 11

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

Elementary Programming

L o o p s. for(initializing expression; control expression; step expression) { one or more statements }

Tester vs. Controller. Elementary Programming. Learning Outcomes. Compile Time vs. Run Time

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

Introduction to Java & Fundamental Data Types

Repetition, Looping. While Loop

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

Variables and Assignments

Chapter 3. Selections

Entry Point of Execution: the main Method. Elementary Programming. Learning Outcomes. Development Process

STUDENT LESSON A12 Iterations

CIS 1068 Program Design and Abstraction Spring2016 Midterm Exam 1. Name SOLUTION

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

Computer Programming, I. Laboratory Manual. Experiment #6. Loops

1 class Lecture5 { 2 3 "Methods" / References 8 [1] Ch. 5 in YDL 9 [1] Ch. 20 in YDL 0 / Zheng-Liang Lu Java Programming 176 / 199

CS 302: INTRODUCTION TO PROGRAMMING. Lectures 7&8

Iteration: Intro. Two types of loops: 1. Pretest Condition precedes body Iterates 0+ times. 2. Posttest Condition follows body Iterates 1+ times

Computational Expression

Programming for Experimental Research. Flow Control

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

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

Entry Point of Execution: the main Method. Elementary Programming. Compile Time vs. Run Time. Learning Outcomes

Introduction to Java Applications

More on control structures

Computer Programming, I. Laboratory Manual. Experiment #2. Elementary Programming

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

Basic computer skills such as using Windows, Internet Explorer, and Microsoft Word. Chapter 1 Introduction to Computers, Programs, and Java

Control Structures in Java if-else and switch

St. Edmund Preparatory High School Brooklyn, NY

Flow of Control. Chapter 3 Part 3 The Switch Statement

Problem Solving With Loops

1 class Lecture2 { 2 3 "Elementray Programming" / References 8 [1] Ch. 2 in YDL 9 [2] Ch. 2 and 3 in Sharan 10 [3] Ch.

3chapter C ONTROL S TATEMENTS. Objectives

REPETITION CONTROL STRUCTURE LOGO

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

Arrays. ˆ An array, is a linear data structure consisting of a collection of elements, each identified by one array index. ˆ For math, arrays could be

Programming Basics. Digital Urban Visualization. People as Flows. ia

CONDITIONAL EXECUTION

Loops and Expression Types

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

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

Review. Primitive Data Types & Variables. String Mathematical operators: + - * / % Comparison: < > <= >= == int, long float, double boolean char

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

5.1. Chapter 5: The Increment and Decrement Operators. The Increment and Decrement Operators. The Increment and Decrement Operators

AL GHURAIR UNIVERSITY College of Computing. Objectives: Examples: Text-printing program. CSC 209 JAVA I

Chapter 3: Operators, Expressions and Type Conversion

Java. Programming: Chapter Objectives. Why Is Repetition Needed? Chapter 5: Control Structures II. Program Design Including Data Structures

Prof. Navrati Saxena TA: Rochak Sachan

Chapter 3 Selection Statements

ECE 122. Engineering Problem Solving with Java

Zheng-Liang Lu Java Programming 45 / 79

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

Controls Structure for Repetition

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

CS 231 Data Structures and Algorithms Fall Event Based Programming Lecture 06 - September 17, Prof. Zadia Codabux

AP Programming - Chapter 6 Lecture

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

Repetition Structures

Loops and Files. Chapter 04 MIT 12043, Fundamentals of Programming By: S. Sabraz Nawaz

Computer Programming. Basic Control Flow - Loops. Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons

Lecture 3 Tao Wang 1

Introduction. C provides two styles of flow control:

Chapter 4 Introduction to Control Statements

CS313D: ADVANCED PROGRAMMING LANGUAGE

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

Transcription:

Logic is the anatomy of thought. John Locke (1632 1704) This sentence is false. I know that I know nothing. anonymous Plato (In Apology, Plato relates that Socrates accounts for his seeming wiser than any other person because he does not imagine that he knows what he does not know.) Zheng-Liang Lu Java Programming 75 / 133

Arithmetic Compound Assignment Operators Note that these shorthand operators are not available in languages such as Matlab, R, and Python. Zheng-Liang Lu Java Programming 76 / 133

Example 1... 2 int x = 1; 3 System.out.println(x); // output 1 4 x = x + 1; 5 System.out.println(x); // output 2 6 x += 2; 7 System.out.println(x); // output 4 8 x++; // equivalent to x += 1 and x = x + 1 9 System.out.println(x); // output 5 10... Zheng-Liang Lu Java Programming 77 / 133

The compound assignment operators are also useful for char values. 1 For example, 1... 2 char s = a ; 3 System.out.println(s); // output a 4 s += 1; 5 System.out.println(s); // output b 6 s++; 7 System.out.println(s); // output c 8... 1 Contribution by Mr. Edward Wang (Java265) on May 1, 2016. Zheng-Liang Lu Java Programming 78 / 133

++x vs. x++ The expression ++x first increments the value of x and then returns x. Instead, the expression x++ first returns the value of x and then increments itself. For example, 1... 2 int x = 1; 3 int y = ++x; 4 System.out.println(y); // output 2; aka preincrement 5 System.out.println(x); // output 2 6 7 int w = 1; 8 int z = w++; 9 System.out.println(z); // output 1; aka postincrement 10 System.out.println(w); // output 2 11... We will use these notations very often. Zheng-Liang Lu Java Programming 79 / 133

Operator Precedence 2 2 See Table3-10 in YDL, p. 116. Zheng-Liang Lu Java Programming 80 / 133

Using Parentheses Parentheses are used in expressions to change the natural order of precedence among the operators. One always evaluates the expression inside of parentheses first. Zheng-Liang Lu Java Programming 81 / 133

Scanner Objects It is not convenient to modify the source code and recompile it for a different radius. Reading from the console enables the program to receive an input from the user. A Scanner object provides some input methods, say the input received from the keyboard or the files. Java uses System.in to refer to the standard input device, by default, the keyboard. Zheng-Liang Lu Java Programming 82 / 133

Example: Reading Input From The Console Write a program which receives a number as input, and outputs the area of the circle. 1 import java.util.scanner; 2... 3 Scanner input = new Scanner(System.in); 4 System.out.println("Enter r?"); 5 // input 6 int r = input.nextint(); 7 // algorithm 8 double area = r r 3.14; 9 // output 10 System.out.println(area); 11 input.close(); 12... Zheng-Liang Lu Java Programming 83 / 133

In the listing, Line 3 is to create a Scanner object by the new operator, as an agent between the keyboard and your program. Note that all objects are resided in the heap of the memory. To control this object, its memory address is then assigned to the variable input which is a variable in the stack of memory. So the variable input is a reference. We will discuss the objects and reference variables later. Zheng-Liang Lu Java Programming 84 / 133

Methods Provided by Scanner Objects 3 3 See Table 2-1 in YDL, p. 38. Zheng-Liang Lu Java Programming 85 / 133

Example: Mean and Standard Deviation Write a program which calculates the mean and the standard deviation of 3 numbers. The mean of 3 numbers is given by x = ( 3 i=1 x i Also, the resulting standard deviation is given by S = 3 i=1 (x i x) 2. 3 You may use these two methods: Math.pow(double x, double y) for x y Math.sqrt(double x) for x See more methods within Math class. ) /3. Zheng-Liang Lu Java Programming 86 / 133

1... 2 Scanner input = new Scanner(System.in); 3 System.out.println("a =?"); 4 double a = input.nextdouble(); 5 System.out.println("b =?"); 6 double b = input.nextdouble(); 7 System.out.println("c =?"); 8 double c = input.nextdouble(); 9 10 double mean = (a + b + c) / 3; 11 double std = Math.sqrt((Math.pow(a mean, 2) + 12 Math.pow(b mean, 2) + 13 Math.pow(c mean, 2)) / 3); 14 15 System.out.println("mean = " + mean); 16 System.out.println("std = " + std); 17... Zheng-Liang Lu Java Programming 87 / 133

1 class Lecture3 { 2 3 "Selections" 4 5 } 6 7 // Keywords 8 if, else, else if, switch, case, default Zheng-Liang Lu Java Programming 88 / 133

Flow Controls The basic algorithm (and program) is constituted by the following operations: Sequential statements: execute instructions in order. Selection: first check if the predetermined condition is satisfied, then execute the corresponding instruction. Repetition: repeat the execution of some instructions until the criterion fails. Zheng-Liang Lu Java Programming 89 / 133

Note that they are involved with each other generally. For example, recall how to find the maximum in the input list? Zheng-Liang Lu Java Programming 90 / 133

Selections One-way if statements Two-way if-else statements Nested if statements Multiway if-else if-else statements switch-case statements Conditional operators Zheng-Liang Lu Java Programming 91 / 133

One-Way if Statements A one-way if statement executes an action if and only if the condition is true. Zheng-Liang Lu Java Programming 92 / 133

1... 2 if (condition) { 3 // selection body 4 } 5... The keyword if is followed by the parenthesized condition. The condition should be a boolean expression or a boolean value. It the condition is true, then the statements in the selection body will be executed once. If not, then the program won t enter the selection body and skip the whole selection body. Note that the braces can be omitted if the block contains only single statement. Zheng-Liang Lu Java Programming 93 / 133

Example Write a program which receives a nonnegative number as input for the radius of a circle, and determines the area of the circle. 1... 2 double area; 3 if (r > 0) { 4 area = r r 3.14; 5 System.out.println(area); 6 } 7... However, the world is not well-defined. Zheng-Liang Lu Java Programming 94 / 133

Two-Way if-else Statements A two-way if-else statement decides which statements to execute based on whether the condition is true or false. 1... 2 if (condition) { 3 // body for the true case 4 } else { 5 // body for the false case 6 } 7... Zheng-Liang Lu Java Programming 95 / 133

Zheng-Liang Lu Java Programming 96 / 133

Example Write a program which receives a number as input for the radius of a circle. If the number is nonnegative, then determine the area of the circle; otherwise, output Not a circle. 1... 2 double area; 3 if (r > 0) { 4 area = r r 3.14; 5 System.out.println(area); 6 } else { 7 System.out.println("Not a circle."); 8 } 9 input.close(); 10 } 11... Zheng-Liang Lu Java Programming 97 / 133

Nested if Statements For example, 1... 2 if (score >= 90) 3 System.out.println("A"); 4 else { 5 if (score >= 80) 6 System.out.println("B"); 7 else { 8 if (score >= 70) 9 System.out.println("C"); 10 else { 11 if (score >= 60) 12 System.out.println("D"); 13 else 14 System.out.println("F"); 15 } 16 } 17 } 18... Zheng-Liang Lu Java Programming 98 / 133

Multi-Way if-else Let s redo the previous problem. 1... 2 if (score >= 90) 3 System.out.println("A"); 4 else if (score >= 80) 5 System.out.println("B"); 6 else if (score >= 70) 7 System.out.println("C"); 8 else if (score >= 60) 9 System.out.println("D"); 10 else 11 System.out.println("F"); 12... An if-elseif-else statement is a preferred format for multiple alternatives, in order to avoid deep indentation and make the program easy to read. Zheng-Liang Lu Java Programming 99 / 133

The order of conditions may be relevant. (Why?) 1... 2 if ((score >= 90) && (score <= 100)) 3 else if ((score >= 80) && (score < 90)) 4... 5 else 6... The performance may degrade due to the order of conditions. (Why?) Zheng-Liang Lu Java Programming 100 / 133

Common Errors 1... 2 double area; 3 if (r > 0); 4 area = r r 3.14; 5 System.out.println(area); 6... Zheng-Liang Lu Java Programming 101 / 133

Example Generating random numbers Write a program which generates 2 random integers and asks the user to answer the math expression. For example, the program shows 2 + 5 =? If the user answers 7, then the program reports Correct. and terminates. Otherwise, the program reports Wrong answer. The correct answer is 7. for this case. You may use Math.random() for a random value between 0.0 and 1.0, excluding themselves. Zheng-Liang Lu Java Programming 102 / 133

1... 2 int x = (int) (Math.random() 10); // integers 0 9 3 int y = (int) (Math.random() 10); 4 int answer = x + y; 5 6 System.out.println(x + " + " + y + " =?"); 7 8 Scanner input = new Scanner(System.in); 9 int z = input.nextint(); 10 11 if (z == answer) 12 System.out.println("Correct."); 13 else 14 System.out.println("Wrong. Answer: " + answer); 15 input.close(); 16... Can you extend this program for all arithmetic expressions (i.e., + )? Zheng-Liang Lu Java Programming 103 / 133

Exercise Find Max Write a program which determines the maximum value in 3 random integers whose range from 0 to 99. How many variables do we need? How to compare? How to keep the maximum value? Zheng-Liang Lu Java Programming 104 / 133

1... 2 int x = (int) (Math.random() 100); 3 int y = (int) (Math.random() 100); 4 int z = (int) (Math.random() 100); 5 6 int max = x; 7 if (y > max) max = y; 8 if (z > max) max = z; 9 System.out.println("max = " + max); 10... In this case, a scalar variable is not convenient. (Why?) So we need arrays and loops. Zheng-Liang Lu Java Programming 105 / 133

switch-case Statements A switch-case structure takes actions depending on the target variable. 1... 2 switch (target) { 3 case v1: 4 // statements 5 break; 6 case v2: 7. 8. 9 case vk: 10 // statements 11 break; 12 default: 13 // statements 14 } 15... Zheng-Liang Lu Java Programming 106 / 133

A switch-case statement is more convenient than an if statement for multiple discrete conditions. The variable target, always enclosed in parentheses, must yield a value of char, byte, short, int, or String type. The value v 1,..., and v k must have the same data type as the variable target. In each case, a break statement is a must. 4 break is used to break a construct! The default case, which is optional, can be used to perform actions when none of the specified cases matches target. Counterpart to else statements. 4 If not, there will be a fall-through behavior. Zheng-Liang Lu Java Programming 107 / 133

Example 1... 2 // RED: 0 3 // YELLOW: 1 4 // GREEN: 2 5 int trafficlight = (int) (Math.random() 3); 6 switch (trafficlight) { 7 case 0: 8 System.out.println("Stop!!!"); 9 break; 10 case 1: 11 System.out.println("Slow down!!"); 12 break; 13 case 2: 14 System.out.println("Go!"); 15 } 16... Zheng-Liang Lu Java Programming 108 / 133

Conditional Operators A conditional expression evaluates an expression based on the specified condition and returns a value accordingly. 1... 2 somevar = booleanexpr? expra : exprb; 3... This is the only ternary operator in Java. If the boolean expression is evaluated true, then return expr A; otherwise, expr B. Zheng-Liang Lu Java Programming 109 / 133

For example, 1... 2 if (num1 > num2) 3 max = num1; 4 else 5 max = num2; 6... Alternatively, one can use a conditional expression like this: 1... 2 max = (num1 > num2)? num1 : num2; 3... Zheng-Liang Lu Java Programming 110 / 133

1 class Lecture4 { 2 3 "Loops" 4 5 } 6 7 // keywords: 8 while, do, for, break, continue Zheng-Liang Lu Java Programming 111 / 133

Loops A loop can be used to make a program execute statements repeatedly without having to code the same statements. For example, a program outputs Hello, Java. for 100 times. 1... 2 System.out.println("Hello, Java."); 3 System.out.println("Hello, Java."); 4. 5. // copy and paste for 100 times 6. 7 System.out.println("Hello, Java."); 8... Zheng-Liang Lu Java Programming 112 / 133

1... 2 int cnt = 0; 3 while (cnt < 100) { 4 System.out.println("Hello, Java."); 5 cnt++; 6 } 7... This is a simple example to show the power of loops. In practice, any routine which repeats couples of times 5 can be done by folding them into a loop. 5 I prefer to call them patterns. Zheng-Liang Lu Java Programming 113 / 133

成也迴圈, 敗也迴圈 Loops provide substantial computational power. Loops bring an efficient way of programming. Loops could consume a lot of time. 6 6 We will visit the analysis of algorithms in the end of this lecture. Zheng-Liang Lu Java Programming 114 / 133

while Loops A while loop executes statements repeatedly while the condition is true. 1... 2 while (condition) { 3 // loop body 4 } 5... The condition should be a boolean expression which determines whether or not the execution of the body occurs. If true, the loop body is executed and check the condition again. Otherwise, the entire loop terminates. Zheng-Liang Lu Java Programming 115 / 133

Zheng-Liang Lu Java Programming 116 / 133

Example Write a program which sums up all integers from 1 to 100. In math, the question can be written as: sum = 1 + 2 + + 100. But this form is not doable in the machine. 7 7 We need to develop computational thinking. Read http://rsta.royalsocietypublishing.org/content/366/1881/3717.full or http://blog.orangeapple.tw/posts/what-is-computational-thinking/. Zheng-Liang Lu Java Programming 117 / 133

Normally, the machine executes the instructions sequentially. So one needs to decompose the math equation into several steps, like: 1... 2 int sum = 0; 3 sum = sum + 1; 4 sum = sum + 2; 5. 6. 7. 8 sum = sum + 100; 9... It is obvious that many similar statements can be found. Zheng-Liang Lu Java Programming 118 / 133

Using a while loop, the program can be rearranged as follows: 1... 2 int sum = 0; 3 int i = 1; 4 while (i <= 100) { 5 sum = sum + i; 6 ++i; 7 } 8... You should guarantee that the loop will terminate as expected. In practice, the number of loop steps (iterations) is unknown until the input data is given. Zheng-Liang Lu Java Programming 119 / 133

Malfunctioned Loops It is really easy to make an infinite loop. 1... 2 while (true); 3... The common errors of the loops are: never start never stop not complete exceed the expected number of iterations Zheng-Liang Lu Java Programming 120 / 133

Example Write a program which asks the sum of two random integers and lets the user repeatedly enter a new answer until correct. 1... 2 Scanner input = new Scanner(System.in); 3 int x = (int) (Math.random() 10); 4 int y = (int) (Math.random() 10); 5 int ans = x + y; 6 7 System.out.println(x + " + " + y + " =? "); 8 int z = input.nextint(); 9 10 while (z!= ans) { 11 System.out.println("Try again? "); 12 z = input.nextint(); 13 } 14 System.out.println("Correct."); 15 input.close(); 16... Zheng-Liang Lu Java Programming 121 / 133

Loop Design Strategy Writing a correct loop is not an easy task for novice programmers. Consider 3 steps when writing a loop: Find the pattern: identify the statements that need to be repeated. Wrap by loops: put these statements in the loop. Set the continuation condition: translate the criterion from the real world problem into computational conditions. 8 8 Not unique. Zheng-Liang Lu Java Programming 122 / 133

Sentinel-Controlled Loops Another common technique for controlling a loop is to designate a special value when reading and processing a set of values. This special input value, known as a sentinel value, signifies the end of the loop. For example, the operating systems and the GUI apps. Zheng-Liang Lu Java Programming 123 / 133

Example: Cashier Problem Write a program which sums over positive integers from consecutive inputs and then outputs the sum when the input is nonpositive. 1... 2 int total = 0; 3 Scanner input = new Scanner(System.in); 4 5 System.out.println("Enter price?"); 6 int price = input.nextint(); 7 while (price > 0) { 8 total += price; 9 System.out.println("Enter price?"); 10 price = input.nextint(); 11 // These two lines above repeat Line 3 and 4?! 12 } 13 14 System.out.println("Total = " + total); 15 input.close(); 16... Zheng-Liang Lu Java Programming 124 / 133

do-while Loops A do-while loop is similar to a while loop except that it does execute the loop body first and then checks the loop continuation condition. 1... 2 do { 3 // loop body 4 } while (condition); // Do not miss the semicolon! 5... Note that there is a semicolon at the end of the do-while loop. The do-while loops are also called posttest loops, in contrast to while loops, which are pretest loops. Zheng-Liang Lu Java Programming 125 / 133

Zheng-Liang Lu Java Programming 126 / 133

Example (Revisted) Write a program which sums over positive integers from consecutive inputs and then outputs the sum when the input is nonpositive. 1... 2 int total = 0, price = 0; 3 Scanner input = new Scanner(System.in); 4 5 do { 6 total += price; 7 System.out.println("Enter price?"); 8 price = input.nextint(); 9 } while (price > 0); 10 11 System.out.println("Total = " + total); 12 input.close(); 13... Zheng-Liang Lu Java Programming 127 / 133

for Loops A for loop generally uses a variable to control how many times the loop body is executed. 1... 2 for (init action; condition; increment) { 3 // loop body 4 } 5... init-action: declare and initialize a variable condition: set a criterion for loop continuation increment: how the variable changes after each iteration Note that these terms are separated by semicolons. Zheng-Liang Lu Java Programming 128 / 133

Sum from 1 to 100 Example Write a program which sums from 1 to 100. 1... 2 int sum = 0; 3 for (int i = 1; i <= 100; ++i) 4 sum = sum + i; 5... Compared to the while version, 1... 2 int sum = 0; 3 int i = 1; 4 while (i <= 100) { 5 sum = sum + i; 6 ++i; 7 } 8... Zheng-Liang Lu Java Programming 129 / 133

Zheng-Liang Lu Java Programming 130 / 133

Example: Selection Resided in Loop Display all even numbers Write a program which displays all even numbers smaller than 100. An even number is an integer of the form x = 2k, where k is an integer. Zheng-Liang Lu Java Programming 131 / 133

You may use the modular operator (%). 1... 2 for (int i = 1; i <= 100; i++) { 3 if (i % 2 == 0) System.out.println(i); 4 } 5... Also consider this alternative: 1... 2 for (int i = 2; i <= 100; i += 2) { 3 System.out.println(i); 4 } 5... How about odd numbers? Zheng-Liang Lu Java Programming 132 / 133

Example: Monte Carlo Simulation 9 Write a program which conducts a Monte Carlo simulation to estimate π. 9 See https://en.wikipedia.org/wiki/monte_carlo_method. Zheng-Liang Lu Java Programming 133 / 133