Slide 1 of 64 Lecture C Lesson 3: Conditions and Loops Unit 1: The if Statement.

Slides:



Advertisements
Similar presentations
1 Chapter 3: Program Statements Lian Yu Department of Computer Science and Engineering Arizona State University Tempe, AZ
Advertisements

1 Control Structures (and user input). 2 Flow of Control The order statements are executed is called flow of control By default, statements in a method.
Copyright © 2012 Pearson Education, Inc. Chapter 6 More Conditionals and Loops Java Software Solutions Foundations of Program Design Seventh Edition John.
Loops – While Loop Repetition Statements While Reading for this Lecture, L&L, 5.5.
5-1 Flow of Control Recitation-01/25/2008  CS 180  Department of Computer Science  Purdue University.
Flow of Control (1) : Logic Clark Savage Turner, J.D., Ph.D. Some lecture slides have been adapted from those developed.
Conditions What if?. Flow of Control The order of statement execution is called the flow of control Unless specified otherwise, the order of statement.
Logical Operators Java provides two binary logical operators (&& and ||) that are used to combine boolean expressions. Java also provides one unary (!)
Loops – While, Do, For Repetition Statements Introduction to Arrays
Aalborg Media Lab 23-Jun-15 Software Design Lecture 6 “Conditionals and Loops”
ECE122 L7: Conditional Statements February 20, 2007 ECE 122 Engineering Problem Solving with Java Lecture 7 Conditional Statements.
1 Tirgul no. 2 Topics covered: H Reading Input from the user. H Printing Output to the user. H if - else statement and switch. H Boolean Operators. H Checking.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Java Program Statements Selim Aksoy Bilkent University Department of Computer Engineering
Logical Operators and Conditional statements
Loops Repetition Statements. Repetition statements allow us to execute a statement multiple times Often they are referred to as loops Like conditional.
© 2004 Pearson Addison-Wesley. All rights reserved5-1 Iterations/ Loops The while Statement Other Repetition Statements.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 6: Repetition  Some additional operators increment and decrement.
Unit 3 1 Flow of control H We will talk about: conditional statements  if-then-else  logical and conditional operators  switch repetition statements.
Boolean Expressions and If Flow of Control / Conditional Statements The if Statement Logical Operators The else Clause Block statements Nested if statements.
CONTROL STATEMENTS Lakhbir Singh(Lect.IT) S.R.S.G.P.C.G. Ludhiana.
CSM-Java Programming-I Spring,2005 Control Flow Lesson - 3.
Chapter 5 Conditionals and Loops. © 2004 Pearson Addison-Wesley. All rights reserved2/33 Conditionals and Loops Now we will examine programming statements.
11 Chapter 4 LOOPS AND FILES. 22 THE INCREMENT AND DECREMENT OPERATORS To increment a variable means to increase its value by one. To decrement a variable.
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.
Chapter 3: Program Statements
Java Software Solutions Lewis and Loftus Chapter 5 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. More Programming Constructs.
Chapter 5: Conditionals and loops. 2 Conditionals and Loops Now we will examine programming statements that allow us to: make decisions repeat processing.
5-1 Repetition Statements Repetition statements allow us to execute a statement multiple times Often they are referred to as loops Like conditional statements,
Chapter 5 Loops.
© 2006 Pearson Education 1 More Operators  To round out our knowledge of Java operators, let's examine a few more  In particular, we will examine the.
Copyright © 2012 Pearson Education, Inc. Chapter 6 More Conditionals and Loops Java Software Solutions Foundations of Program Design Seventh Edition John.
Loops (cont.). Loop Statements  while statement  do statement  for statement while ( condition ) statement; do { statement list; } while ( condition.
Control Structures - Selections - Repetitions/iterations (part 2) 1 -Based on slides from Deitel & Associates, Inc. - Revised by T. A. Yang.
Chapter 5 Conditionals and Loops. © 2004 Pearson Addison-Wesley. All rights reserved5-2 The switch Statement The switch statement provides another way.
Topics Logical Operators (Chapter 5) Comparing Data (Chapter 5) The conditional operator The switch Statement The for loop Nested Loops.
Control Flow. Data Conversion Promotion happens automatically when operators in expressions convert their operands For example, if sum is a float and.
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.
Java iteration statements ● Iteration statements are statements which appear in the source code only once, but it execute many times. ● Such kind of statements.
1 Lecture 5 More Programming Constructs Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology.
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.
Application development with Java Lecture 6 Rina Zviel-Girshin.
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
1 Flow of Control Chapter 5. 2 Objectives You will be able to: Use the Java "if" statement to control flow of control within your program.  Use the Java.
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Decisions and Iterations.
Programming in Java (COP 2250) Lecture 12 & 13 Chengyong Yang Fall, 2005.
Introduction to Programming G50PRO University of Nottingham Unit 6 : Control Flow Statements 2 Paul Tennent
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
Chapter 4 Repetition Statements (loops)
Chapter 6 More Conditionals and Loops
Loop Structures.
Boolean Expressions and If
The switch Statement The switch statement provides another way to decide which statement to execute next The switch statement evaluates an expression,
Chapter 6 More Conditionals and Loops
Outline Altering flow of control Boolean expressions
3 Control Statements:.
Chapter 3: Program Statements
Module 4 Loops and Repetition 2/1/2019 CSE 1321 Module 4.
Comparing Data & the ‘switch’ Statement
Comparing Data & the ‘switch’ Statement
CprE 185: Intro to Problem Solving (using C)
Chap 7. Advanced Control Statements in Java
Control Statements:.
Presentation transcript:

Slide 1 of 64 Lecture C Lesson 3: Conditions and Loops Unit 1: The if Statement

Slide 2 of 64 Lecture C The if Statement The Java if statement has the following syntax: if (boolean-condition) statement; If the Boolean condition is true, the statement is executed; if it is false, the statement is skipped This provides basic decision making capabilities

Slide 3 of 64 Lecture C Tempreture class Temperature { static final int THRESHOLD = 65; public static void main(String[] args) { InputRequestor input = new InputRequestor(); int temperature = input.requestInt(“Enter the temperature:”); System.out.println(“Current temperature “+ temperature); if (temperature < THRESHOLD) System.out.println(“It’s cold in here!”); }

Slide 4 of 64 Lecture C If statement flow diagram if (condition) statement; condition statement true

Slide 5 of 64 Lecture C Boolean Expressions The condition of an if statement must evaluate to a true or false result Java has several equality and relational operators: More complex Boolean expressions are also possible OperatorMeaning ==equal to !=not equal to <less than <=less than or equal to >greater than >=greater than or equal to

Slide 6 of 64 Lecture C Block Statements Several statements can be grouped together into a block statement Blocks are delimited by braces A block statement can be used wherever a statement is called for in the Java syntax if (boolean-condition){ statement1; statement2; … }

Slide 7 of 64 Lecture C Example - Temperature2 class Temperature2 { static final int THRESHOLD = 65; public static void main(String[] args) { InputRequestor input = new InputRequestor(); int temperature = input.requestInt(“Enter the temperature:”); System.out.println(“Current temperature “+ temperature); if (temperature < THRESHOLD) { System.out.println(“It’s cold in here!”); System.out.println(“But we’ll survive.”); }

Slide 8 of 64 Lecture C If.. Else Statement An else clause can be added to an if statement to make it an if-else statement: if (condition) statement1; else statement2; If the condition is true, statement1 is executed; if the condition is false, statement2 is executed

Slide 9 of 64 Lecture C Example - Temperature3 class Temperature3 { static final int FREEZING_POINT = 32; public static void main(String[] args) { InputRequestor input = new InputRequestor(); int temperature = input.requestInt(“Enter temperature:”); if (temperature <= FREEZING_POINT) System.out.println(“It’s freezing!”); else System.out.println(“Above freezing.”); }

Slide 10 of 64 Lecture C If/else flow diagram if (condition) statement1; else statement2; condition statement2 true statement1

Slide 11 of 64 Lecture C Nested If statements Since an “If” statement is a statement, it can appear inside another if statement. if (condition1) if (condition2) statement; It can also appear in an “else” clause if (condition1) statement1; else if (condition2) statement2;

Slide 12 of 64 Lecture C Nested If Example // Reads 2 integers and compares them class CompareExample { public static void main(String[] args) { InputRequestor input = new InputRequestor(); int a = input.requestInt(“First number:”); int b = input.requestInt(“Second number:”); if (a != b){ if (a > b) System.out.println(a+” is greater”); else System.out.println(b+” is greater”); }else System.out.println(“the numbers are equal”); }

Slide 13 of 64 Lecture C Checking your Input When requesting input from the user, keep in mind that the input may be invalid. It is good practice to check the validity of user input int numberOfItems = input.requestInt(“Enter number of items:”); if (numberOfItems < 0) { System.out.println( “Number of items must be positive!”); } else { double price = numberOfItems * ITEM_PRICE; System.out.println(“The total price is:“ +price); }

Slide 14 of 64 Lecture C Lesson 3: Conditions and Loops Unit 2: Boolean Expressions

Slide 15 of 64 Lecture C Logical Operators Boolean expressions may be combined using logical operators There are three logical operators in Java: They all take Boolean operands and produce Boolean results Logical NOT is unary (one operand), but logical AND and OR are binary (two operands) OperatorOperation !Logical NOT &&Logical AND ||Logical OR

Slide 16 of 64 Lecture C Logical NOT The logical NOT is also called logical negation or logical complement If a is true, !a is false; if a is false, then !a is true Logical expressions can be shown using truth tables a!a falsetrue false

Slide 17 of 64 Lecture C Logical AND The expression a && b is true if both a and b are true, and false otherwise Truth tables show all possible combinations of all terms aba && b false truefalse truefalse true

Slide 18 of 64 Lecture C Logical OR The expression a || b is true if a or b or both are true, and false otherwise aba || b false true falsetrue

Slide 19 of 64 Lecture C Logical Operators Logical operators are used to form more complex logical expressions Logical operators have precedence relationships between themselves and other operators if (a<1 || a%2!=0) System.out.println( “The input should be an even even number!”);

Slide 20 of 64 Lecture C Logical Operators Full expressions can be evaluated using truth tables a < 1a%2!=0a<1 || a%2=0 false truefalse truefalse true

Slide 21 of 64 Lecture C Boolean variables Boolean expressions can be assigned to Boolean variables Boolean variables are Boolean expressions boolean b, c; b = (x > 17); c = (x>17) && (x<60); boolean b, c; b = (x > 17); c = b && (x<60); if (c) System.out.println(“x is in range”);

Slide 22 of 64 Lecture C Example - RightTriangle // Receives the length of the edges of a triangle // and determine if this is a right triangle class RightTriangle { public static void main(String[] args) { InputRequestor input = new InputRequestor(); float a = input.requestInt(“Edge1:”); float b = input.requestInt(“Edge2:”); float c = input.requestInt(“Hypotenuse:”); boolean test = a*a+b*b == c*c; if (test) System.out.println(“It’s a right triangle”); else System.out.println(“It’s not a right triangle”); }

Slide 23 of 64 Lecture C Lesson 3: conditions and loops Unit C3: The while Statement

Slide 24 of 64 Lecture C The while statement A while statement has the following syntax: while (condition) statement; If the condition is true, the statement is executed; then the condition is evaluated again The statement is executed over and over until the condition becomes false If the condition of a while statement is false initially, the statement is never executed Therefore, we say that a while statement executes zero or more times

Slide 25 of 64 Lecture C While statement flow diagram while (condition) statement; condition statement true

Slide 26 of 64 Lecture C Example - Counter // Counts from 1 to 5 class Counter { static final int LIMIT = 5; public static void main(String[] args) { int count = 1; while (count <= LIMIT) { System.out.println(count); count = count + 1; } System.out.println(“done”); }

Slide 27 of 64 Lecture C Examples - Factors // Gets an integer and prints its factors class FactorsExample { public static void main(String[] args) { InputRequestor input = new InputRequestor(); int a = input.requestInt(“Enter a number:”); int i = 1; System.out.println(“The divisors of “+a+” are:”); while (i <= a) { if (a%i == 0) { System.out.println(i); } i = i + 1; }

Slide 28 of 64 Lecture C Infinite Loops The body of a while loop must eventually make the condition false If not, it is an infinite loop, which will execute until the user interrupts the program This is a common type of logical error -- always double check that your loops will terminate normally

Slide 29 of 64 Lecture C Example - Forever // This program contains an infinite loop class Forever { static final int LIMIT = 25; public static void main(String[] args) { int count = 1; while (count <= LIMIT) { System.out.println(count); count = count - 1; }

Slide 30 of 64 Lecture C Lesson 3: conditions and loops Unit 4: More conditionals

Slide 31 of 64 Lecture C The Conditional Operator Java has a conditional operator that evaluates a Boolean condition that determines which of two expressions is evaluated The result of the chosen expression is the result of the entire conditional operator Its syntax is: condition ? expression1 : expression2 If the condition is true, expression1 is evaluated; if it is false, expression2 is evaluated

Slide 32 of 64 Lecture C The Conditional Operator It is similar to an if-else statement, except that it is an expression that returns a value For example: If a is greater that b, then a is assigned to max ; otherwise, b is assigned to max The conditional operator is ternary, meaning it requires three operands int max = (a > b) ? a : b;

Slide 33 of 64 Lecture C The Conditional Operator Another example: If count equals 1, "Dime" is printed, otherwise "Dimes" is printed System.out.println ("Your change is " + count + ((count == 1) ? "Dime" : "Dimes”));

Slide 34 of 64 Lecture C Another Selection Statement The if and the if-else statements are selection statements, allowing us to select which statement to perform next based on some Boolean condition Another selection construct, called the switch statement, provides another way to choose the next action The switch statement evaluates an expression, then attempts to match the result to one of a series of values Execution transfers to statement list associated with the first value that matches

Slide 35 of 64 Lecture C The switch Statement The syntax of the switch statement is: switch (expression) { case value1: statement-list1 case value2: statement-list2 case … }

Slide 36 of 64 Lecture C The switch Statement The expression must evaluate to an integral value, such as an integer or character The break statement is usually used to terminate the statement list of each case, which causes control to jump to the end of the switch statement A default case can be added to the end of the list of cases, and will execute if no other case matches

Slide 37 of 64 Lecture C The switch Statement /** * A client that enables you to connect to the * bank server and make remote banking operations... */ public class BankClient { public static final int VIEW_BALANCE = 1; public static final int VIEW_SAVINGS = 2; public static final int CASH_TRANSFER = 3; public static final int VIEW_LAST_OPERATIONS = 4; //...

Slide 38 of 64 Lecture C The switch Statement // Inside the main loop of the client: int option = InputRequestor.requentInt(“Enter your choice:”); switch(option) { case VIEW_BALANCE: showBalance(); break; case VIEW_SAVINGS: showSavings(); break; default: output.showMessage(“No such option!”); }

Slide 39 of 64 Lecture C Lesson 3: conditions and loops Unit 5: Shorthand Operators

Slide 40 of 64 Lecture C Shorthand Operators Many operations are very commonly used Java has shorthand notations for these  increment and decrement operators  assignment operators x = x + 1; sum = sum + x;

Slide 41 of 64 Lecture C The Increment and Decrement Operators The increment operator ( ++ ) adds one to its integer or floating point operand The decrement operator ( -- ) subtracts one The statement is essentially equivalent to count++; count = count + 1;

Slide 42 of 64 Lecture C The Increment and Decrement Operators The increment and decrement operators can be applied in prefix (before the variable) or postfix (after the variable) form When used alone in a statement, the prefix and postfix forms are basically equivalent. That is, is equivalent to count++; ++count;

Slide 43 of 64 Lecture C The Increment and Decrement Operators When used in a larger expression, the prefix and postfix forms have a different effect In both cases the variable is incremented (decremented) But the value used in the larger expression depends on the form ExpressionsOperationValue Of expression count++add 1old value ++countadd 1new value count--subtract 1old value --countsubtract 1new value

Slide 44 of 64 Lecture C The Increment and Decrement Operators If count currently contains 45, then assigns 45 to total and 46 to count If count currently contains 45, then assigns the value 46 to both total and count total = count++; total = ++count;

Slide 45 of 64 Lecture C The Increment and Decrement Operators If sum contains 25, what does this statement print? Prints the following result: sum contains 26 after the line is complete System.out.println (sum++ + " " + ++sum + " " + sum + " " + sum--);

Slide 46 of 64 Lecture C Assignment Operators Often we perform an operation on a variable, then store the result back into that variable Java provides assignment operators that simplify that process For example, the statement is equivalent to sum += value; sum = sum + value;

Slide 47 of 64 Lecture C Assignment Operators There are many such assignment operators, always written as op=, such as: OperatorExampleEquivalent to +=x+=yx = x + y -=x-=yx = x - y *=x*=yx = x * y /=x/=yx = x / y %=x%=yx = x % y

Slide 48 of 64 Lecture C Assignment Operators The right hand side of an assignment operator can be a complete expression The entire right-hand expression is evaluated first, then combined with the additional operation Therefore result /= total-MIN; is equivalent to result /= total-MIN; result = result / (total-MIN);

Slide 49 of 64 Lecture C Lesson 3: conditions and loops Unit C6: More Repetition

Slide 50 of 64 Lecture C More Repetition Constructs In addition to while loops, Java has two other constructs used to perform repetition:  the do statement  the for statement Each loop type has its own unique characteristics You must choose which loop type to use in each situation

Slide 51 of 64 Lecture C The do Statement The do statement has the following syntax: do statement while (condition); The statement is executed until the condition becomes false It is similar to a while statement, except that its termination condition is evaluated after the loop body

Slide 52 of 64 Lecture C The do Statement The key difference between a do loop and a while loop is that the body of the do loop will execute at least once If the condition of a while loop is false initially, the body of the loop is never executed Another way to put this is that a while loop will execute zero or more times and a do loop will execute one or more times

Slide 53 of 64 Lecture C Do Statement Example // Gets an integer and prints its factors class AvgExample { public static void main(String[] args){ InputRequestor input = new InputRequestor(); double x, sum=0, count=-1; do { x = input.RequestDouble(“Next number:”); sum += x; count++; } while (x != 0); // 0 is a flag indicating end of input System.out.println(“The average is “+sum/count); }

Slide 54 of 64 Lecture C The do Statement flow diagram statement condition false true

Slide 55 of 64 Lecture C The for Statement Many loops have a common pattern, captured by the for statement The syntax of the for loop is for (intialization; condition; increment) statement; This is equivalent to initialization; while (condition) { statement; increment; }

Slide 56 of 64 Lecture C The for Statement: examples Examples: for (int count=1; count < 75; count++) { System.out.println (count); } for (int num=1; num <= max; num = num * 2) { System.out.println (“Next power of 2: “ + num); }

Slide 57 of 64 Lecture C The for Statement The initialization is always performed once The condition of a for statement is tested prior to executing the loop body (like in the while statement) Therefore, a for loop will execute zero or more times For loops are well suited for cases where the number of iterations is known beforehand The increment is executed after each iteration of the loop

Slide 58 of 64 Lecture C Omitting parts in a for Statement Each expression in the header of a for loop is optional  If the initialization is left out, no initialization is performed  If the condition is left out, it is always considered to be true, and therefore makes an infinite loop  If the increment is left out, no increment operation is performed Both semi-colons are always required for (;;) {// an infinite loop System.out.println (“beep”); } // compute a value count for (; count < max ; count ++ ) { System.out.println (count); }

Slide 59 of 64 Lecture C The for Statement flow diagram statement condition false true initialization increment

Slide 60 of 64 Lecture C Multiplication Table Example class MultiplicationTable { public static void main(String[] args){ for(int j=1 ; j <= 10 ; j++) { for(int k=1 ; k <= 10 ; k++) System.out.print(j*k); System.out.println(); }

Slide 61 of 64 Lecture C The break and continue statements The break statement, which we used with switch statements, can also be used inside a loop When the break statement is executed, control jumps to the statement after the loop (the condition is not evaluated again) A similar construct, the continue statement, can also be executed in a loop When the continue statement is executed, control jumps to the end of the loop and the condition is evaluated

Slide 62 of 64 Lecture C Break and Continue Example class AvgExample2 { public static void main(String[] args){ InputRequestor in = new InputRequestor(); double x, sum = 0; count = 0; while(true){ x = in.RequestDouble(); if (x == 0) break; if (x < 0) { System.out.println(“Only positive numbers!”); continue; } sum += x ; count ++ ; } // continued on next page

Slide 63 of 64 Lecture C Break and Continue Example (2) System.out.println(“The average is “+sum/count); }

Slide 64 of 64 Lecture C Why do We Need Indentation? class Mystery { public static void main(String[] args) { InputRequestor in = new InputRequestor(); int dimension = in.requestInt(“Please enter the dimension”); for (int j = 0; j < dimension; j++) { for (int k = 1; k < dimension - j; k++) { System.out.print(" "); } for (int k = 0; k < j; k++) { System.out.print("*"); } System.out.println(); }}}