Control Statements: Part I

Control Statements: Part I

1 JAVA REVIEW: II CISC6795, Xiaolan Zhang, Fordham University Outline 2 Read input from users Use packages Variable, primitive types, expressions Pseudocode, control structure Sequence

Selection statement Repetition statement 1 // Fig. 2.7: Addition.java 2 // Addition program that displays the sum of two numbers. 3 import java.util.Scanner; // program uses class Scanner import declaration imports class Scanner from package java.util. 4 5 public class Addition 6

{ Outline 3 7 // main method begins execution of Java application 8 public static void main( String args[] ) 9 { (1 variable Declare and initialize of 2) input, which is a Scanner. import 10

// create Scanner to obtain input from command window 11 Scanner input = new Scanner( System.in ); 12 13 int number1; // first number to add 14 int number2; // second number to add 15 int sum; // sum of number1 and number2 Additio n.java declaration Scanner

nextInt 16 17 System.out.print( "Enter first integer: " ); // prompt 18 number1 = input.nextInt(); // read first number from user 19 Read an integer from the user and assign it to number1. Outline 4 20 System.out.print( "Enter second integer: " ); // prompt

21 number2 = input.nextInt(); // read second number from Readuser an integer 22 23 sum = number1 + number2; // add numbers from the user and assign it to number2. Additio n.java 24 25 System.out.printf( "Sum is %d\n", sum ); // display sum 26 27

(2 of 2) 4. Addition 5. printf } // end method main 28 Display the sum using formatted output. 29 } // end class Addition Enter first integer: 45 Enter second integer: 72 Sum is 117 Two integers entered by the user. Import Declaration 5 3

Package: a named collection of related classes Must appear before first class declaration Alternatively, import java.util package // program uses class Scanner Tell compiler to load class Scanner from java.util package import java.util.Scanner; import java.util.*;

Forgetting to import a class/package => compilation error such as cannot resolve symbol. By default, package java.lang is imported in every Java program only package in Java API that does not require an import declaration. Variable declaration statement 6 10 11 // create Scanner to obtain input from command window Scanner input = new Scanner( System.in ); Same as Scanner input; input = new Scanner (System.in); Variables declaration VariableType VariableName;

A variable is a location in memory that stores a value, must be declared before used Variable name: any valid identifier (recall the rule?) Initialize variable in its declaration Equal sign stands for assignment operator The parameter System.in refers to standard input object (often links to keyboard): input variable will be used to read inputs from keyboard Primitive types 13 14 15 7

int number1; // first number to add int number2; // second number to add int sum; // second number to add Declare variable number1, number2 and sum of type int Primitive types in Java: int, float, double, char, byte, boolean int holds integer values (whole numbers): i.e., 0, -4, 97 Types float and double hold decimal numbers Type char holds a single character: i.e., x, $, \n, 7 int number1, // first number to add number2, // second number to add sum; // second number to add Can declare multiple variables of the same type in one declaration

Use comma-separated list Primitive Types 8 Java requires all variables to have a type. Primitive types in Java are portable across all platforms. Same size across all platforms, int is always 23 bits, Local variables of types char, byte, short, int, long, float and double, i.e., those declared in a method Are not initialized by default Using a variable without initializing it =>

compilation error Good Programming Practice 9 Declare each variable on a separate line allows a descriptive comment to be easily inserted next to each declaration. Choose meaningful variable names self-documenting program Convention for variable-name identifiers begin with a lowercase letter, and every subsequent word in the name begins with a capital letter e.g., firstNumber, studentRecord, Reading from keyboard 10 18 number1 = input.nextInt(); // read first number from user

Result of call to nextInt given to number1 using assignment operator = Assignment statement = binary operator - takes two operands Expression on right evaluated and assigned to variable on left Place spaces on both side of binary operator for more readable code Read as: number1 gets the value of input.nextInt() How to read double, char, ? Online Java API document for the version of Java you

use Examples used through the class are for Java SE 6 Adding Integers 11 23 sum = number1 + number2; // add numbers Assignment statement Calculates sum of number1 and number2 (right hand side) Uses assignment operator = to assign result to variable sum Read as: sum gets the value of number1 + number2 number1 and number2 are operands Displaying result 12

25 System.out.printf( "Sum is %d\n: " , sum ); // display sum Use System.out.printf to display results Format specifier %d Placeholder for an int value System.out.printf( "Sum is %d\n: " , ( number1 + number2 ) ); Calculations can also be performed inside printf Parentheses around the expression number1 + number2 are not required Variables stored in memory 13

Variable has a name, a type, a size and a value Variables are stored in main memory Size of memory depends on the type Name corresponds to location in memory Mapping performed by compiler Assignment statement: place new value into variable, replaces (and destroys) previous value Reading variables from memory does not change them Arithmetic Expression

14 Arithmetic calculations * for multiplication / for division % for remainder +, Integer division truncates remainder 12 / 5 evaluates to 2 Remainder operator % returns the remainder 7 % 5 evaluates to 2 Arithmetic operators 15

Java operation Arithmetic Algebraic operator expression Java expression Addition + f+7 f + 7 Subtraction pc p - c

Bm b * m Multiplication * Division / x / y or or x y x / y Exercise: write an expression to convert temperature from Farenheith degree to Celsus degree: Hint: Tf = (9/5)*Tc+32; Tc = temperature in degrees Celsius Tf = temperature in degrees Fahrenheit Operator Precedence 16

Some arithmetic operators act before others (i.e., multiplication before addition) Use parenthesis when needed Operator(s) Operation(s) Order of evaluation (precedence) * Multiplication / Division % Remainder + Addition - Subtraction

Evaluated first. If there are several operators of this type, they are evaluated from left to right. Evaluated next. If there are several operators of this type, they are evaluated from left to right. Casting 17 To calculate average value of count # of integers: average = (double) total / count; Unary cast operator (double) creates a temporary floating-point copy of its operand. The value stored in its operand is unchanged. To perform a floating-point calculation, temporarily treat these values as floating-point numbers for use in

the calculation. Cast operator performs explicit conversion (or type cast). Operands type in an arithmetic expressions should be identical. In an expression containing values of types int and double, int values are promoted to double values for use in the expression. count is casted to double too, this is called Promotion (or implicit conversion). 18 Cast operators Cast operators are available for any type. Sometimes this lead to loss of information int dollarAmount; double changes = amountReceived amountDue; dollarAmount = (int) changes;

Cast operators associate from right to left same precedence as other unary operators, such as unary + and unary double a=10.35; double b=(double)(int)a; Good Programming Practice 19 Refer to operator precedence chart when writing expressions containing many operators. When uncertain, use parentheses to force the order Some operators, such as assignment, =, associate from right to left rather

than from left to right. Exercise 20 Exercise: write an expression to convert temperature from Farenheith degree to Celsus degree: Tf = (9/5)*Tc+32; Tc : temperature in degrees Celsius Tf : temperature in degrees Fahrenheit In lab1 assignment, you will implement a Cashier program. One task is to direct the cashier to give changes to the customer:

If the change is $12.34, the program displays Give 12 dollars, 1 quarter, 5 nickels and 4 pennies. Problem Solving Approach 21 Dont start coding right away Before writing a program to solve a problem Unless its a trivia problem Have a thorough understanding of the problem Carefully plan your program to solving the problem, i.e., algorithm

Understand available building blocks Employ proven program-construction techniques Top-down technique Algorithms 22 An algorithm is a procedure for solving a problem in terms of the actions to execute and the order in which these actions execute One Rise-and-shine algorithm: (1) Get out of bed; (2) take off pajamas; (3) take a shower; (4) get dressed;

(5) eat breakfast; (6) carpool to work. Easier? Now how to take a shower Pseudocode 23 Pseudocode: an informal language for describing algorithms without having to worry about language details Helps you think out a program before attempting to code Carefully prepared pseudocode can easily

be converted to a corresponding program. Like program language, also have control structure for constructing loops, selection Control Structures 24 Sequential execution: Statements in a program execute one after the other in the order in which they are written. Transfer of control: Statements in a program that which enable change of next statement to execute, i.e., not necessarily next one in sequence. All programs can be written in terms of only three control structuresthe sequence structure, the selection structure and the repetition structure. Selection statements

25 if statement: Single-selection statement Performs an action, if a condition is true; skips it, if false. Selects or ignores a single action (or group of actions). ifelse statement: Double-selection statement Performs an action if a condition is true and performs a different action if the condition is false. Selects between two different actions (or groups of actions).

switch statement: Multiple-selection statement Performs one of several actions, based on the value of an expression. Selects among many different actions (or groups of actions). Repetition/Looping Statements 26 Perform statements repeatedly while a loop-continuation condition remains true. while and for statements perform the action(s) in their bodies zero or more times

if the loop-continuation condition is initially false, the body will not execute. The dowhile statement performs the action(s) in its body one or more times. if, else, switch, while, do and for are keywords. Condition 27 Selection and repetition statements involve conditions : If the condition is true, then the body of the if statement executed if (condition) body while the condition is true, repeat to execute while (condition) the body of the loop body Condition: expression that is either true or

false can be formed using equality or relational operators if ( number1 >= number2 ) System.out.printf( "%d >= %d\n", number1, number2 ); Equality and relational operators 28 Standard algebraic Java equality Sample equality or relational or relational Java operator operator condition Equality operators Relational operators Meaning of

Java condition == != x == y x != y x is equal to y x is not equal to y > < >= <= x x x x x is greater than y x is less than y x is greater than or equal to y x is less than or equal to y

> y < y >= y <= y No spaces between symbols in operators ==, !=, >= and <=. Reversing operators !=, >= and <=, as in =!, => and =<, is a syntax error. 29 Common Programming Error Confusing equality operator, ==, with assignment operator, =, leads to logic error or syntax error. == read as is equal to = read as gets, or gets the value of. if Single-Selection Statement 30

Pseudocode If students grade is greater than or equal to 60 Print Passed If the condition is false, the Print statement is ignored, and the next pseudocode statement in order is performed. Indent the body of the statement Emphasizes the inherent structure of structured programs The preceding pseudocode in Java: if ( studentGrade >= 60 ) System.out.println( "Passed" );

ifelse Double-Selection Statement 31 ifelse double-selection statement: specify an action to perform when the condition is true and a different action when the condition is false. Pseudocode if students grade is greater than or equal to 60 Print Passed else Print Failed Converting the pseudocode statement into Java: if ( grade >= 60 ) System.out.println( "Passed" ); else System.out.println( "Failed" );

Note that the body of the else is also indented. Conditional Operator 32 Conditional operator (?:)shorthand for if else. System.out.println( studentGrade >= 60 ? "Passed" : "Failed" ); Ternary operator (takes three operands) studentGrade >= 60 ? "Passed" : "Failed a boolean expression evaluates to a boolean value (true or false) the value if the boolean expression is true the value if the boolean

expression evaluates to false. Evaluates to the string "Passed" if the boolean expression studentGrade >= 60 is true and to the string "Failed" if it is false. Nested Ifelse statement 33 Nested ifelse statements : place an ifelse statement as the body for another if else statement Useful for testing multiple cases Pseudocode: If students Print A else If students Print B else

If students Print C else If students Print D else Print F grade is greater than or equal to 90 grade is greater than or equal to 80 grade is greater than or equal to 70 grade is greater than or equal to 60 Nested ifelse Statement 34 In Java: if ( studentGrade >= 90 ) System.out.println( "A" ); else if ( studentGrade >= 80 ) System.out.println( "B" ); else if ( studentGrade >= 70 )

System.out.println( "C" ); else if ( studentGrade >= 60 ) System.out.println( "D" ); else System.out.println( "F" ); Nested if else statement 35 Alternative formatting if ( studentGrade >= 90 ) System.out.println( "A" ); else if ( studentGrade >= 80 ) System.out.println( "B" ); else if ( studentGrade >= 70 ) System.out.println( "C" ); else if ( studentGrade >= 60 ) System.out.println( "D" ); else System.out.println( "F" ); The two formats are identical except for the spacing

and indentation, which the compiler ignores. ifelse Double-Selection Statement 36 Dangling-else problem: Which if does the else associated with ? if ( x > 5 ) if ( y > 5 ) System.out.println( "x and y are > 5" ); else System.out.println( "x is <= 5" ); Java always associates an else with the immediately preceding if, unless told to do otherwise by braces ({ and }). The compiler actually interprets the statement as if ( x > 5 ) if ( y > 5 ) System.out.println( "x and y are > 5" );

else "x isisnot <= 5" ); This is aSystem.out.println( logic error, as the program doing what the programmer intend it to do. ifelse Double-Selection Statement 37 To force the nested ifelse statement to execute as it was originally intended: if ( x > 5 ) { if ( y > 5 ) System.out.println( "x and y are > 5" ); } else System.out.println( "x is <= 5" );

Braces indicate that the second if is in the body of the first and that the else is associated with the first if. Block Statement 38 To include several statements in the body of an if, or the body of an else, enclose the statements in braces. Statements contained in a pair of braces form a block. A block can be placed anywhere that a single statement can be placed. if ( grade >= 60 ) System.out.println("Passed"); else { System.out.println("Failed"); System.out.println("You must take this course

again."); } Empty Statement 39 Note that there is no ; after the condition if (x>0); System.out.println (x is not greater than 0); Above code has no syntax error Compiler interpret ; as empty statement If (x>0); System.out.println ((x is not greater than 0); Recall a block statement can be placed

anywhere a single statement can be placed, so does an empty statement. Another example of logic error ! Exercise 40 Review logic operators: &&, ||, ! , i.e., and, or, not operators. Write a piece of code that test whether a given year is prime year or not Write a piece of code that test whether a given date (specified by year, month and day) is a valid date or not while Repetition Statement 41

Repetition statementrepeats an action while a condition remains true. Pseudocode While there are more items on my shopping list Purchase next item and cross it off my list Repetition statements body may be a single statement or a block. Eventually, the condition will become false. At this point, the repetition terminates, and the first statement after the repetition statement executes. while Repetition Statement (Cont.) 42

Example: find smallest power of 3 that is larger than 100. int product = 3; while ( product <= 100 ) product = 3 * product; System.out.printf (smallest power of 3 greater than 100 is %d\ n, product); Each iteration multiplies product by 3, so product takes on the values 9, 27, 81 and 243 successively. When variable product becomes 243, the whilestatement conditionproduct <= 100becomes false. Repetition terminates. The final value of product is 243. Program execution continues with the next statement after the while statement. Formulating Algorithms: Counter-Controlled Repetition 43

A class of ten students took a quiz. The grades (integers in the range 0 to 100) for this quiz are available to you. Determine the class average on the quiz. The algorithm: input each grade, keep track of the total of all grades input, perform the averaging calculation and print the result. Use counter-controlled repetition to input the grades one at a time. The class average is equal to the sum of the grades divided by the number of students. A variable called a counter (or control variable) controls the number of times a set of statements will execute.

Counter-controlled repetition is often called definite repetition, because the number of repetitions is known before the loop begins executing. 44 total: a variable used to accumulate the sum of several values. A counter is a variable used to count. Variables used to store totals are normally initialized to zero before being used in a program. 45 46 Review: How to convert the while loop into for loop ?

47 Formulating Algorithms: Sentinel-Controlled Repetition 48 Develop a class-averaging program that processes grades for an arbitrary number of students E.g., Use -1 to end Use a special value, sentinel value, to indicate end of data entry. A sentinel value must be an unacceptable input value.

Indefinite repetition: the number of repetitions is not known beforehand. Exercise: write a pesudocode for above problem 49 50 Reminder the user about the sentinel 51 We use while loop here Can we rewrite the code use do loop ? Which loop is better ? 52 Some shorthand Operators 53 Increment operator, ++, decrement

operator, -Compound assignment operators: +=, =, *=, Summary 54 We review basic constructs in Java in this class Read from standard input, write to standard output Variables, primitive data type, arithmetic expression Focus now on a text-based program run from terminal GUI programming will be introduced later

Assignment operator, arithmetic operators Cast: converting a variable to another data type Control structures: sequence, selection and repetition Summary (contd) 55 Condition: an expression that has a boolean value Selection statement: Used in selection, loop Construct a condition: relational/comparison operators, boolean operators (&&, ||, !)

If statement, if else statement Repetition statement while, do, for loop Should know how to convert between them Summary (contd) 56 Algorithm, Pseudocode Construct of a loop for solving problems Initialization Body Condition

Whenever writing a loop, be sure to verify that it works Are variables initialized before the loop? Will the loop terminate properly?

Recently Viewed Presentations

  • Financial Accounting and Accounting Standards

    Financial Accounting and Accounting Standards

    Company recognizes revenues and gross profits each period based upon the progress of the construction—referred to as the percentage-of-completion method. If criteria are not met, the company recognizes revenues and gross profit when the contract is completed, referred to as...
  • Nessun titolo diapositiva

    Nessun titolo diapositiva

    pittore del dipylon 760 a.c. ca. exechias 550 a.c. ca. arte vascolare le fasi di lavorazione. la decorazione a figure rosse le figure vengono lasciate in "argilla risparmiata", mentre lo sfondo È ricoperto con la vernice nera. il vasaio traccia...
  • Report Title - Washington

    Report Title - Washington

    Medicaid Fraud False Claims Act Sunset Review. Legislative Auditor's Conclusion: The Legislature should reauthorize the Medicaid Fraud False Claims Act because it allows the state to pursue additional fraud cases, and recoveries have increased
  • Introduction to Resources: Accounting, Finance ... - uel.ac.uk

    Introduction to Resources: Accounting, Finance ... - uel.ac.uk

    UEL Webmail. account or contact . [email protected] Sconul Access. More than 150 UK University libraries in the scheme. Reference only access to print stock. Some borrowing rights for Post Grads. Go to website to register: ... University of East London...
  • Myths and Facts in African Agriculture: What We

    Myths and Facts in African Agriculture: What We

    Agricultural Factor Markets in Sub-Saharan Africa: An . Updated View with Formal Tests for Market . Failure … a preview. Provide a summary overview of land and labor market participation in Ethiopia, Malawi, Niger, Tanzania, and Uganda.
  • Integrated Participation and Collaborative Digital Mapping

    Integrated Participation and Collaborative Digital Mapping

    Integrated Participatory and Collaborative Digital Mapping to Enhance Disaster Resilience. P. Khadka (Center for Social Development and Research, Nepal), S. Dugar (Practical Action Nepal), W. Liu (International Institute for Applied Systems Analysis), G. Thapa (Kathmandu Living Labs) and N. Pudasaini...
  • Overview - University of Missouri-St. Louis

    Overview - University of Missouri-St. Louis

    - Caroline Smith, Director of Business Intelligence - Travelocity A robust data warehouse Obtain the "single view of the customer" Six Key Success Factors Flexible and scalable CRM tools Define event and wait for it to occur Event triggers a...
  • JavaScript & jQuery Session IV Chapter 15 -

    JavaScript & jQuery Session IV Chapter 15 -

    This is the standard database name that you want your application to use. This is important because you reference this when you start building queries.