240 likes | 386 Views
The switch Statement, DecimalFormat , and Introduction to Looping. CS0007: Introduction to Computer Programming. Review. You can test a series of condition with the… if-else if statement Nesting is… enclosing one structure inside of another. Binary logical operators combine…
E N D
The switch Statement, DecimalFormat, and Introduction to Looping CS0007: Introduction to Computer Programming
Review • You can test a series of condition with the… • if-else if statement • Nesting is… • enclosing one structure inside of another. • Binary logical operators combine… • two boolean expressions into one. • Binary logical operators: • && • || • Unary logical operator: • !
Review • What does the == operator compare when the operands are strings? • Their references • What should you use instead of logical operators when comparing strings? • equals • compareTo • A variable has block-level scope if… • It is declared inside of a block • A variable that is declared inside of a block has scope beginning at… • It’s declaration • A variable that is declared inside of a block has scope ending at… • The end of the block in which it was declared
The switch Statement • It is often the case that you want the value of a single variable decide which branch a program should take: if (x == 1) statement or block 1 if else (x == 2) statement or block 2 if else (x == 3) statement or block 3 else statement or block 4 • This is tedious and not very aesthetically pleasing. • Java provides a structure that lets the value of a variable or expression decide which branch to take • This structure is called a switch statement.
The switchStatement • General form of a switch statement: switch(SwitchExpression){ caseCaseExpression1: //One or more statements break; caseCaseExpression2: //One or more statements break; default: //One or more statements } • switch– keyword that begins a switch statement • SwitchExpression – a variable or expression that has to be either char, byte, short, orint. • case – keyword that begins a case statement (there can be any number of case statements) • CaseExpression1 – a literal or final variable that is of the same type as SwitchExpression.
The switchStatement • General form of a switch statement: switch(SwitchExpression){ caseCaseExpression1: //One or more statements break; caseCaseExpression2: //One or more statements break; default: //One or more statements } • Inside a case statement, one or more valid programming statements may appear. • After the statement(s) inside of a case statement’s block, often the keywordbreakappears. • After all of the case statements, there is the default case, which begins with the keyword default.
The switchStatement • General form of a switch statement: switch(SwitchExpression){ caseCaseExpression1: //One or more statements break; caseCaseExpression2: //One or more statements break; default: //One or more statements } • What this does is compare the value of SwitchExpressionto each CaseExpressions. • If they are equal, the statements after the matching case statement are executed. • Once the break keyword is reached, the statements after the switch statement’s block are executed. • break is a keyword that breaks the control of the program out of the current block. • If none of the CaseExpressionsare equal to SwitchExpression, then the statements below the default case are executed.
The switchStatement if (x == 1) y = 4; if else (x == 2) y = 9; else y = 22; Is the same as… switch(x){ case1: y = 4; break; case2: y = 9; break; default: y = 22;}
switch Statement Example • New Topics: • The switch Statement
The switch Statement Notes • The CaseExpression of each case statement must be unique. • The default section is optional. • Again, the SwitchExpression and all of the CaseExpressions must be either char, byte, short, orint. • Without the break; at the end of the statements associated with a casestatement, the program “falls through” to the next casestatement’s statements, and executes them. • If this is what you actually want, then leave out the break;, but often it isn’t. • Why doesn’t default statement have a break; at the end?
The DecimalFormat Class • Java has a default way of displaying floating-point numbers, but it is often the case you want to display them in a particular format • The Java API provides a class to do this called DecimalFormat. • You create a DecimalFormat object much like how you created a Scanner object. DecimalFormatidentifier= newDecimalFormat(formattingPattern); • Also like when you create Scanner object, you must include an import statement before the class header: importjava.text.DecimalFormat;
The DecimalFormat Class • formattingPatternis an argument passed to the DecimalFormat constructor that tells it what format to display the floating-point numbers. • Each character in the corresponds with a position in the number • # - specifies that a digit should be displayed if present • 0 - specifies that a digit should be displayed if present, but if not 0 should be displayed • %- placed at the end to multiply the number by 100 and place the % character at the end. • To apply the format to a number, you must use the format method of the DecimalFormat object. decimalformatIdentifier.format(floatingPointNumber)
DecimalFormat Example • New Topics: • DecimalFormat class
The printf method • Another way to format output is with the printf method from the out object in the System class. • System.out.printf(FormatString, ArgumentList); • This is a formatting method taken from old C formatting • It is very powerful, and somewhat easy to use. • The book goes over some examples of how it can be used. • Also there are many, many examples of how to use this online.
Loops • So far we have used decision structures to determine which statements are executed and which are not depending on a condition. • We used this for: • Validation • General control flow • More specifically, we’ve used decision structures to execute statements that follow the condition one or zero times. • What if we want the user to keep trying to put in valid input until she succeeds? • How would we do this with decision structures? • Can we? • Answer: No • Solution: Loops • A loop is a control structure that causes a statement or group of statements to repeat. • We will discuss three (possibly four) looping control structures. • They differ in how they control the repitition.
The whileLoop • The first looping control structure we will discuss is the while loop. • General Form: while(BooleanExpression) Statement or Block • First, the BooleanExpression is tested • If it is true, the Statement or Block is executed • After the Statement or Block is done executing, the BooleanExpression is tested again • If it is still true, the Statement or Block is executed again • This continues until the test of the BooleanExpression results in false. • Note: the programming style rules that apply to decision statements also apply.
The whileLoop Flowchart Boolean Expression True Statement or Block False
while Loop Example • New Topics: • whileLoop • Here, number is called a loop control variable. • A loop control variable determines how many times a loop repeats. • Each repetition of a loop is called an iteration. • The a while loop is known as a pretest loop, because it tests the boolean expression before it executes the statements in its body. • Note: This implies that if the boolean expression is not initially true, the body is never executed. number++ number <= 5 True Print “Hello!” False
Infinite Loops • In all but rare cases, loops must contain a way to terminate within themselves. • In the previous example number was incremented so that eventually number <= 5 would be false. • If a loop does not have a way of terminating it’s iteration, it is said to be an infinite loop, because it will iterate indefinitely. • This is a bad logic error! • ...often, but always in this class • If we removed number++ from the previous example, it would be an infinite loop. • Can also be created by putting a semicolon after the loop header or not using brackets properly.
The do-while Loop • while loops are considered pretest, but Java also provides a posttest loop called the do-while loop: do Statement or Block while(BooleanExpression); • Here, the Statement or Block is executed first • Next, the BooleanExpression is tested • If true, the Statement or Block is executed • Then the BooleanExpression is tested • This continues until the BooleanExpression is false. • Again, this is a posttest loop, meaning the BooleanExpression is tested at the end. • Note that this means the Statement or Block will ALWAYS be executed at least once. • Also not the semicolon at the end of the last line.
The do-while Loop Flowchart Statement or Block True Boolean Expression False
do-whileLoop Example • New Topic: • do-while Loop