Object Oriented Programming
260 likes | 284 Views
This lecture covers the implementation and coding process, including the use of the Circle and Point classes. It also discusses flow control, decision making, and loops.
Object Oriented Programming
E N D
Presentation Transcript
Object Oriented Programming Lecture 4: Flow Control Mustafa Emre İlal emreilal@iyte.edu.tr
Recap • Implementation • Coding – writing source code • Assignment 2 • Circle class • Point class • Applications using these classes
Today • Flow control • Decision making • Loops • Thinking in Java – Chapter 3
Controlling Program Flow • Branching flow based on certain criteria • Conditional statements • Repeating a process – Loops
Normal Flow • A program is a series of commands • Step by step, top-down execution of commands • A pre-determined series is not adequate • Based on state, a different route might need to be taken • Need a branching mechanism - if
Including an optional additional path • Executing a set of commands based on certain conditions • Condition is of a boolean type in Java: either “true” or “false” Condition? false true
if … if (condition) { if condition is ‘true’ instructions to execute .... } instructions after merging of both branches (normal execution path)
Parallel Paths • The either/or situation: choosing one path or the other based on a condition. • if - else Condition? true false
if – else … if (condition) { instructions that are to be executed when the condition is true .... } else { instructions to be executed when the condition is false } instructions after merging of both branches
More than two paths • When more than two alternatives exist for a condition, we go through the list of possibilities. Elminating them one-by-one Condition1 true false Condition2 true false Condition3 true false
if – elseif if (condition1) { instructions to be executed if condition1 is true .... } elseif (condition2) { instructions to be executed if condition1 is false but condition2 is true } elseif (condition3) { instructions to be executed if all conditions above are false and condition3 is true } else { instructions to be executed if all conditions are false } instructions after merging of all branches
A different “condition testing” • .if – elseif command allows us to test conditions based on boolean value (true or false) • The switch statement allows us to test for various values of a particular variable type test value1 value2 value3 value4
switch switch (variable) { casevalue1: instructions; break; casevalue2: instructions; break; casevalue3: instructions; break; casevalue4: instructions; break; default: instructions; }
Repeating a process • Often a series of commands need to be repeated • Types of repetition: • An application itself is a mecahnism for repeating commands. • Function/method calls are repetitons based on demand • Loops: • A certain number of repetitons • Repetition until a condition is met
Loops Condition? false true Condition? true false
while while (test condition) { body of loop; } --- int i=0; while (i<10) { System.out.println(i); i++; }
do - while Do { body of loop; } while (test condition) ; --- int i=0; do { System.out.println(i); i++; } while (i<10) ;
for for (initialization[s]; test condition; counter update[s]) { body of loop; } ----- for (int i=0; i<10; i++) { System.out.println(i); }
enhanced for for (initialization[s] : iterable collection or array) { body of loop; } ----- for (int i :an_array[]) { System.out.println(i); }
break - continue • break • For immediate exit out of any loop body • Only one level exit in case of nested loops • continue • To start the next iteration of the loop immediately. • Only one level • If there is a need to go beyond one level, use “labels”.
break - continue while (true) { //infinite loop statements... ; if (exceptional condition) { break; //exit loop } more statements...; }
Assignment 04 • Write a class named ‘Assignment04’ that implements the following static methods. • static boolean isEven(int number) • if number is even, return true, otherwise return false • static String resolveAreaCode (int code) • Return the name of the area for the area codes below: • 212: Istanbul-1; 216: Istanbul-2; 312: Ankara; 232: Izmir; 322: Adana; 266: Balikesir; 224: Bursa; 462: Trabzon; 532: Turkcell; 542:Vodafone; 505-TurkTelekom; other codes: Unknown_code • (you are expected to use the switch statement)
Assignment 04 • static void fibonacciSeries(int n) • Display the first n numbers in the Fibonacci sequence (The sequence of numbers that start with 0 and 1 and where each number thereafter is the sum of the two preceeding numbers.) • static void fibonacciUntil (int max) • Display the fibonacci sequence that ends with the first number greater than or equal to max. • static void squares(int n) • Display the squares of the first n integers starting with 0. (02,12,22,32,...) • static void squaresUntil(int max) • Display the squares of integers that end with the first square greater than or equal to max.
Assignment 04 • static void randomTest() • The Math.random() method generates a real number n (of type double) where, 0.00 <= n < 1.00. Using this method, generate 1000 integers between 50 and 150 and display their average. • static void countdown(int n) • Display integers (in reverse order) from n down to 0.
Assignment 04 • Write a class named ‘Assignment04App’ • It should test all the static methods of the Assignment4 class and display the outputs on screen.
Next Week • Preperation: Thinking in Java Chapter 4-6