4. More Control Structures and Types 4.1 Logical (Conditional) AND, OR, and NOT 4.2 Nested Ifs and the Switch Statement 4.3 The For and Do-While Loops.

Slides:



Advertisements
Similar presentations
Chapter 5 Methods to our madness. Review Identifiers are names used for variables, constants, methods, classes, and packages. Must start with a letter,
Advertisements

Control Structures Corresponds with Chapters 3 and 4.
1 Chapter 3: Program Statements Lian Yu Department of Computer Science and Engineering Arizona State University Tempe, AZ
5-1 Flow of Control Recitation-01/25/2008  CS 180  Department of Computer Science  Purdue University.
1 Fundamental Data types Overview l Primitive Data Types l Variable declaration l Arithmetical Operations l Expressions l Assignment statement l Increment.
COMP 14 Introduction to Programming Miguel A. Otaduy May 18, 2004.
Loops – While, Do, For Repetition Statements Introduction to Arrays
Aalborg Media Lab 23-Jun-15 Software Design Lecture 6 “Conditionals and Loops”
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Primitive Data Types There are exactly eight primitive data types in Java four of them represent integers: byte (class Byte), short (class Short), int.
Primitive Types Java supports two kinds of types of values – objects, and – values of primitive data types variables store – either references to objects.
Logical Operators and Conditional statements
© 2004 Pearson Addison-Wesley. All rights reserved5-1 Iterations/ Loops The while Statement Other Repetition Statements.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie June 30, 2005.
1 Data types, operations, and expressions Continued l Overview l Assignment statement l Increment and Decrement operators l Short hand operators l The.
String Escape Sequences
CONTROL STATEMENTS Lakhbir Singh(Lect.IT) S.R.S.G.P.C.G. Ludhiana.
Introduction to Programming Prof. Rommel Anthony Palomino Department of Computer Science and Information Technology Spring 2011.
1 Variables, Constants, and Data Types Primitive Data Types Variables, Initialization, and Assignment Constants Characters Strings Reading for this class:
CONTROL STATEMENTS IF-ELSE, SWITCH- CASE Introduction to Computer Science I - COMP 1005, 1405 Instructor : Behnam Hajian
Control Structures – Selection Chapter 4 2 Chapter Topics  Control Structures  Relational Operators  Logical (Boolean) Operators  Logical Expressions.
Programming in Java (COP 2250) Lecture 11 Chengyong Yang Fall, 2005.
CSCI 1100/1202 January 28, The switch Statement The switch statement provides another means to decide which statement to execute next The switch.
Copyright © 2012 Pearson Education, Inc. Chapter 4: Making Decisions.
Chapter 3 Selections Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
5-1 Repetition Statements Repetition statements allow us to execute a statement multiple times Often they are referred to as loops Like conditional statements,
Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved. 1 Chapter 4 Mathematical Functions, Characters,
Flow of Control Part 1: Selection
C++ Programming: Basic Elements of C++.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 2 Basic Elements of Java.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Selection Statements Selection Switch Conditional.
Introduction to Java Java Translation Program Structure
Lesson 6 Selection Structures. Example program //This will convert a numeric grade into a letter grade import TerminalIO.KeyboardReader; public class.
Chapter Making Decisions 4. Relational Operators 4.1.
CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 9 GEORGE KOUTSOGIANNAKIS Copyright: 2014 Illinois Institute of Technology- George Koutsogiannakis 1.
1 Lecture 2 b declaration and use of variables b expressions and operator precedence b introduction to objects b class libraries b flow of control b decision-making.
Flow of Control Unless indicated otherwise, the order of statement execution through a method is linear: one after the other in the order they are written.
ICT Introduction to Programming Chapter 4 – Control Structures I.
Sections © Copyright by Pearson Education, Inc. All Rights Reserved.
Control statements Mostafa Abdallah
1 Program Development  The creation of software involves four basic activities: establishing the requirements creating a design implementing the code.
1 b Boolean expressions b truth tables b conditional operator b switch statement b repetition statements: whilewhile do/whiledo/while forfor Lecture 3.
Tokens in C  Keywords  These are reserved words of the C language. For example int, float, if, else, for, while etc.  Identifiers  An Identifier is.
Computing with C# and the.NET Framework Chapter 4 More Control Structures and Types ©2003, 2011 Art Gittleman.
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
Control structures in C by Dr P.Padmanabham Professor (CSE)&Director Bharat Institute of Engineering &Technology Hyderabad Mobile
Lecture 6 – Selection FTMK, UTeM – Sem /2014.
Java Basics. Tokens: 1.Keywords int test12 = 10, i; int TEst12 = 20; Int keyword is used to declare integer variables All Key words are lower case java.
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Decisions and Iterations.
Chapter 2: Data and Expressions. Variable Declaration In Java when you declare a variable, you must also declare the type of information it will hold.
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
© 2004 Pearson Addison-Wesley. All rights reserved August 27, 2007 Primitive Data Types ComS 207: Programming I (in Java) Iowa State University, FALL 2007.
C# and the .NET Framework
Selections Java.
Primitive Data Types August 28, 2006 ComS 207: Programming I (in Java)
Multiple variables can be created in one declaration
Fundamental of Java Programming Basics of Java Programming
Control Structures – Selection
Arithmetic operations, decisions and looping
Chapter 3: Program Statements
Chapter 3: Program Statements
OBJECT ORIENTED PROGRAMMING I LECTURE 9 GEORGE KOUTSOGIANNAKIS
Control Structure Chapter 3.
CprE 185: Intro to Problem Solving (using C)
Chap 7. Advanced Control Statements in Java
Control Structure.
Presentation transcript:

4. More Control Structures and Types 4.1 Logical (Conditional) AND, OR, and NOT 4.2 Nested Ifs and the Switch Statement 4.3 The For and Do-While Loops 4.4 Additional Primitive Types 4.5 Using the Math Library 4.6 Solving Problems with Java: An Iterative Development Cycle

Objectives Learn useful selection and repetition statement Use primitive types and operators Use the Math library Build software using an iterative development cycle

Logical Operators Boolean expressions can use logical (conditional) ! Logical NOT && Logical AND || Logical OR They all take boolean operands and produce boolean results Logical NOT (Conditional Complement) is a unary operator (one operand), but the other two are binary operators (two operands)

Logical Operators Conditions in selection statements and loops can use logical operators to form complex expressions if (b >= a && c >= a) min = a; if (a >= b && c >= b) min = b; if (a >= c && b >= c) min = c; Logical operators have precedence relationship between themselves and other operators

Figure 4.2 Conditional Operators

Figure 4.3 Evaluating an example of a conditional AND expression

Figure 4.4 Evaluating a conditional AND expression

Figure 4.5 Evaluating an example of a conditional OR expression

Figure 4.6 Evaluating a condition OR expression

Figure 4.7 Evaluating a logical complement expression

Figure 4.8 Operator precedence* Highest NOT!! multiplicative* / % additive+ - relational = equality== != conditional AND&& conditional OR|| assignment= += -= *= /= %= Lowest

if (score >= 60 && score < 80) System.out.println("Score " + score + " receives a C"); else System.out.println("Score " + score + " receives a B or an A"); Figure 4.9 If-else statement to choose between two alternatives

Nested If Statements The if-true-statement and if-false-statement of an if statement could be another if statement These are called nested if statements if (a >= b) if (b >= c) min = c; else min = b; else if (a >= c) min = c; else min = a; An else clause is matched to the last unmatched if (no matter what the indentation implies)

Figure 4.10 Nested if-else statement to choose among three alternatives if (score >= 60 && score < 80) System.out.println("Score " + score + " receives a C"); else if (score >=80 && score < 90) System.out.println("Score " + score + " receives a B"); else System.out.println("Score " + score + " receives an A");

Figure 4.11 Improved version of Figure 4.10 if (score >= 60 && score < 80) System.out.println("Score " + score + " receives a C"); else if (score >=80 && score < 90) System.out.println("Score " + score + " receives a B"); else if (score >= 90 && score <= 100) System.out.println("Score " + score + " receives an A");

Figure 4.12 Flow chart for nested if-else statements Last? Last false code... Last true code True False Test1? Test2? Test1 true code Test2 true code True False

Figure 4.13 Incorrect attempt to pair an else with an if if (score >= 60) if (score >= 80) System.out.println("You got a B or an A"); else System.out.println("You got a D or an F"); // Wrong pairing

Figure 4.14 Corrected pairing of else and if if (score >= 60) if (score >= 80) System.out.println("You got a B or an A"); else System.out.println("You got a C"); // Correct pairing

Figure 4.15 Figure 4.13 rewritten as an if-else with nested if if (score >= 60) { if (score >= 80) System.out.println("You got a B or an A"); } Else // Paired to first 'if' System.out.println("You got a D or an F");

The Switch Statement The switch statement provides another means 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 Each case contains a value and a list of statements The flow of control transfers to statement list associated with the first value that matches

The Switch Statement A switch statement can have an optional default case which has no associated value If the default case is present, control will transfer to it if no other case value matches The default case can be positioned anywhere in the switch, it is usually placed at the end If there is no default case, and no other value matches, control falls through to the next statement after the switch

The Switch 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 The expression of a switch statement must result in an integral data type, like an integer or character You cannot perform relational checks with a switch staement

Figure 4.16 An example of a switch statement switch(mark) { case 0: case 1: case 2: case 3: case 4: System.out.println("F"); break; case 5: System.out.println("D"); break; case 6: case 7: System.out.println("C"); break; case 8: System.out.println("B"); break; case 9: case10: System.out.println("A"); break; default:System.out.println("Incorrect score"); }

The For Statement The for statement has the following syntax: for ( initialization ; condition ; increment ) statement ; The initialization is executed once before the loop begins The statement is executed until the condition becomes false The increment portion is executed at the end of each iteration

The For Statement The for statement is equivalent to the following while loop structure initialization ; while ( condition ) { statement ; increment ; } Like a while loop, the condition of a for loop is tested prior to executing the loop body Therefore, the body of a for loop can be executed zero or more times

Figure 4.17 A for statement for the sum int sum = 0; for (int i = 1; i <= 4; i++) sum += i;

initializei = 1 test1 <= 4 is true execute bodysum += 1(result: sum = = 1) updatei++(result: i = 2) test2 <= 4 is true execute bodysum += 2(result: sum = = 3) updatei++(result: i = 3) test3 <= 4 is true execute bodysum += 3(result: sum = = 6) updatei++(result: i + 4) test4 <= 4 is true execute bodysum += 4(result: sum = = 10) updatei++(result: i = 5) test5 <= 4 is false Figure 4.18 Trace of execution of the for loop of Figure 4.17

Figure 4.19 A for statement for the sum int sum = 0; for (int i = 1; i < 10; i += 2) sum += i;

Figure 4.20 A for statement for the sum int sum = 0; for (int i = 4; i >= l; i--) sum += i;

Figure 4.21 Declaring an index variable before the for loop int i; // declare loop index int sum = 0; for (i = 4; i >= 1; i--) // initialize loop index sum += i;... i += 17; // use variable i

Examples TwelveDays.java (extra) Diamond.java (extra) Growth.java Mortgage.java (extra)

The StringTokenizer Class StringTokenizer(String str) Constructor. Creates a new StringTokenizer object to parse str based on white space StringTokenizer(String str, String delimiter ) Constructor. Creates a new StringTokenizer object to parse str based on specified set of delimiteds int countTokens() Returns the number of token still left to be processed in the string boolean hasMoreTokens() Returns true if there are tokens still left to be processed in the string String nextToken() Returns the next token in the string

Figure 4.22 Syntax for the do-while statement do statement while (condition) ;

Do-while Statement A do-while statement checks the condition after executing the loop body The loop body of a do-while statement is executed at least once Do-while statements are suitable for writing loops that are executed at least once DoGrowth.java Babylonian.java (extra)

Figure 4.23 Pseudocode for example 4.5 enhancement do { Compute balance as in Example 4.5 Ask the user -- Repeat or Quit? } while (User chooses to repeat);

The char Type Java uses Unicode charater set (16 bits) ASCII, American Standard Code for Information Interchange, is a seven-bit code used by other language like C and C++ ASCII is a subset of Unicode Keyword char to denote character type Character constants are quoted in single quotes, e.g. ‘A’ Ascii.java

Escape Sequence Escape sequence: preceding certain character with the escape character \ for special meaning The newline, '\n', positions the next output at the start of the next line The return, '\r', positions the next output at the start of the curent line The backspace, '\b', positions the next output one character to the left The tab, '\t', position the next output at the next tab position

Escape Sequence The escape needs to be "escaped" when quoted like '\\' and "\\" The single quote character must be "escaped" in single quotes like '\'' The double quote must be "escaped" in double quotes like ”\”This is a quote\”" Special.java

\\backlash Special Character Meaning \nnewline, move to the start of the next line \ttab \bbackspace \rreturn, move to the start of the current line \"double quote \nnewline, move to the start of the next line Figure 4.24 Escape sequences for special characters

The byte, short, and long Types byte : one byte = 8 bits, range from -128 to 127 short : two bytes = 16 bits –range from -32,768 to 32,767 int : four bytes = 32 bits –range from -2,147,483,648 to 2,147,483,647 long : eight bytes = 64 bits –range 9,223,372,036,854,808 to 9,223,372,036,854,807 in t is the default for integer constant Integer constants can be made long by adding the suffix l or L

The float Type floa t: four bytes = 32 bits –Exponent can range from -45 to 48 –Min ~ -3.4E+38 with seven significant digits –Max ~ 3.4E+38 with seven significant digits double : eight bytes = 64 bits –Exponent can range from -324 to 308 –Min ~ -1.7E+308 with 16 significant digits –Max ~ 1.7E+308 with 16 significant digits double is the default for real constants Make a number float by adding an f or F suffix float good = 4.25f; // valid float ok = (float)4.25; // valid float bad = 4.25; // invalid

The Math Class In java.lang package Two static constants: E (base of natural log) and PI (ratio of circumference of a circle to its diameter) General functions abs - absolute value ceil - ceiling, smallest integer >= argument floor - flooring, greatest integer <= argument round - rounding, integer closest to argument max - maximum of the two arguments min - minimum of the two arguments

The Math Class Simple mathematical operations sqrt(double a) - Return the square root of the argument pow(double a, double b ) - Returns of value of the first argument raised to the power of the second argument log(double a ) - Returns the natural logarithm (base e) of a double value exp(double a ) - Returns the exponential number e (i.e., ) raised to the power of a double value Random number random() - Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0

The Math Class Trigonometric functions sin, cos, tan - sine, cosine, and tangent asin, acos, atan - arc-sine, arc-cosine, and arc-tangent atan2(double a, double b ) - Returns the theta component in the polar coordinates (r, theta) corresponding to the point (b, a) in Cartesian coordinates Degree/Radian conversion toDegrees(double angrad ) - Converts an angle in radians to the equivalent angle measured in degrees toRadians(double angdeg ) - Converts an angle in degrees to the equivalent angle measured in radians

The Math Class Library.java Toss.java CoinToss.java

Figure 4.25 Size of the reward given each day Reward Days (grains of rice)

Figure 4.26 Using random numbers to represent heads and tails HHHHHHHHHHHHHHHHHTTTTTTTTTTTTTTTTTT HeadsTails

Iterative Development Cycle First iteration - CovertMenu.java (with stubs for methods) Second iteration - CovertFromMetric.java (implement MetricToEnglish() ) Third iteration - Convert.java (implement EnglishToMetric() )

Figure 4.27 Iterative problem-solving process Formulate the problem; do { Develop pseudocode; Implement pseudocode in Java program; Test program; while (More subproblems to refine);

Figure 4.28 Top-level Pseudocode do [ Display the menu; Get the user's choice; Execute the user's choice; } while (user does not choose to quit);

Figure 4.29 Pattern for a menu-driven application do { System.out.println(); System.out.println("Choose from the following list"); System.out.println("1. Convert from meters to yds,ft,in"); System.out,println("2. Convert from yds,ft,in to meters"); System.out.println("3. Quit"); int choice = Io.readInt("Enter your choice, 1, 2 or 3"); switch (choice) { case 1: MetricToEnglish(); break; case 2: EnglishToMetric(); break; case 3: System.out.println("Bye, Have a nice day"); } } while (choice != 3);

Figure 4.30 Pseudocode for the MetricToEnglish method Input the number of meters, x, to convert; Convert x meters to y yards; Separate y into yInteger yards and yFraction yards; Convert yFraction yards to f feet. Separate f into fInteger feet and fFraction feet. Convert fFraction feet to i inches. Display the output.

Figure 4.31 Refinement:Display the output if (yInteger > 0) if (yInteger <= 1) Display yInteger yard; else Display yInteger yards; if (fInteger > 0) if (fInteger <= 1) Display fInteger foot; else Display fInteger feet; if (i >0) if (i <= 1) Display i inch; else Display i inches; if (yInteger == 0 && fInteger == 0 && i == 0) Display 0 yards;

Figure 4.32 Pseudocode for the EnglishToMetric method Input yards, feet, and inches to convert; Convert to inches; Convert inches to meters; Output the result;