© 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.
-
Upload
benedict-waters -
Category
Documents
-
view
216 -
download
0
Transcript of © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.
![Page 1: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/1.jpg)
© 2013 Ken Howard, Southern Methodist University
CSE 1341Topic 3
Control Statements
![Page 2: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/2.jpg)
Summary of topics covered:• primitive types
• int• long• double
• compound assignment operators• increment/decrement operators• Scanner• Algorithms• Pseudocode• Control Structures• if• if..else• while• counters• sentinels• nested control statements
![Page 3: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/3.jpg)
• Java is a strongly typed language (all variables need to have a data type).
• Default values: numbers = 0, boolean = false• Reference-type instance variables are initialized by
default to the value null.
Primitive Data Types
![Page 4: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/4.jpg)
• Used for integers (positive or negative, no decimal).
• Size limit +/- 2.15 billion (approx)
• Literal non-decimal numbers are int by default
5000 (is treated as an int)
Careful!int x = 5000000;
int y = 1000;
int z = x * y;
//z will not contain the correct product
primitive type: int
![Page 5: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/5.jpg)
• Used for large integers
• Size limit +/- 263
• Literal non-decimal numbers are int by default
• A literal long is created with the L suffix 5000 (is treated as an int)
5000L (is treated as a long)
Careful!long z = 5000000 * 1000; //Wrong result
long z = 5000000L * 1000; //Correct
long z = 5000000 * 1000L; //Correct
primitive type: long
int * intYields an int
result
int * longYields a long
result
Assignment happens after all math on the right has
completed.
![Page 6: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/6.jpg)
• Used for floating point numbers (non-integers).
What happens when…
int x = 5;
int y = 2;
int z = x/y;
primitive type: double
![Page 7: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/7.jpg)
Mixing types:
int d, e;
double f;
d = 9;
e = 6;
f = d/e;
System.out.println("\nDIVIDE BOTH ints:");
System.out.println("int d="+d);
System.out.println("int e="+e);
System.out.println("double f="+f);
Dividing two int values results in an int result.
AFTER THE RESULT IS CALCULATED…Because f is a double, the int result is converted to a double.
Dividing two int values results in an int result.
AFTER THE RESULT IS CALCULATED…Because f is a double, the int result is converted to a double.
![Page 8: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/8.jpg)
All doubles:
double g, h, i;
g = 9;
h = 6;
i = g/h;
System.out.println("\nDIVIDE TWO doubles:");
System.out.println("double g="+g);
System.out.println("double h="+h);
System.out.println("double i="+i);
Dividing two double values results in a double result.
Dividing two double values results in a double result.
![Page 9: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/9.jpg)
Temporary type change (cast):
int j, k;
double l;
j = 9 ;
k = 6;
l = (double)j/k;
System.out.println(
"\nDIVIDE BOTH ints THEN CAST:");
System.out.println("int j="+j);
System.out.println("int k="+k);
System.out.println("double l="+l);
The (cast) temporarily changes the int to a double for
the calculation, but does not permanently change the value/type of variable j.
In division, if either numerator OR denominator is a double, the other is treated as a double too.
The (cast) temporarily changes the int to a double for
the calculation, but does not permanently change the value/type of variable j.
In division, if either numerator OR denominator is a double, the other is treated as a double too.
![Page 10: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/10.jpg)
• Integer division yields an integer result.
• The unary cast operator (double) creates a temporary floating-point copy of its operand.
• Cast operator performs explicit conversion (or type cast).
• The value stored in the operand is unchanged.
• The precedence is one level higher than that of the multiplicative operators *, / and %.
• Java evaluates only arithmetic expressions in which the operands’ types are identical.
• Promotion (or implicit conversion) performed on operands.
• In an expression containing values of the types int and double, the int values are promoted to double values for use in the expression.
Cast/Promotion Summary
![Page 11: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/11.jpg)
• Compound assignment operators abbreviate assignment expressions.
Instead of: c = c + 3;
Abbreviate as: c += 3;
The += operator adds the value of the expression on its right to the value of the variable on its left and stores the result in the variable on the left of the operator.
Used with binary operators +, -, *, / or %
Compound Assignment Operators
![Page 12: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/12.jpg)
![Page 13: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/13.jpg)
• Unary increment operator, ++, adds one to its operand• Unary decrement operator, --, subtracts one from its
operand• An increment or decrement operator that is prefixed to
(placed before) a variable is referred to as the prefix increment or prefix decrement operator, respectively.
• An increment or decrement operator that is postfixed to (placed after) a variable is referred to as the postfix increment or postfix decrement operator, respectively.
Increment and Decrement Operators
![Page 14: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/14.jpg)
Examples:int result = 0;int value = 5;
result = value++; // value == 6, result == 5result = ++value; // value == 7, result == 7
Increment and Decrement Operators
![Page 15: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/15.jpg)
What’s the value of a and b after each statement completes execution?
int a = 5;
int b = 10;
a++;
a = a + 10;
a += 20;
a--;
a = --b + 10;
a = b-- + 10;
Increment and Decrement Operators
a b
![Page 16: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/16.jpg)
Scanner
import java.util.Scanner;
public class Foo
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int x = input.nextInt();
}
}
![Page 17: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/17.jpg)
• Any computing problem can be solved by executing a series of actions in a specific order.
• An algorithm is a procedure for solving a problem in terms of– the actions to execute and– the order in which these actions execute
• The “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. • Suppose that the same steps are performed in a slightly different
order: – (1) Get out of bed; (2) take off pajamas; (3) get dressed; (4) take a
shower; (5) eat breakfast; (6) carpool to work. • Specifying the order in which statements (actions) execute in a
program is called program control.
Algorithms
![Page 18: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/18.jpg)
• Pseudocode is an informal language that helps you develop algorithms without having to worry about the strict details of Java language syntax.
• Particularly useful for developing algorithms that will be converted to structured portions of Java programs.
• Similar to everyday English.• Helps you “think out” a program before attempting to write it in a
programming language, such as Java. • You can type pseudocode conveniently, using any text-editor program. • Carefully prepared pseudocode can easily be converted to a corresponding
Java program. • Pseudocode normally describes only statements representing the actions
that occur after you convert a program from pseudocode to Java and the program is run on a computer. – e.g., input, output or calculations.
Pseudocode
![Page 19: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/19.jpg)
• Sequential execution: Statements in a program execute one after the other in the order in which they are written.
• Transfer of control: Various Java statements, enable you to specify that the next statement to execute is not necessarily the next one in sequence.
• Bohm and Jacopini – Demonstrated that programs could be written without any goto
statements. – All programs can be written in terms of only three control structures—
the sequence structure, the selection structure and the repetition structure.
• When we introduce Java’s control structure implementations, we’ll refer to them in the terminology of the Java Language Specification as “control statements.”
Control Structures
![Page 20: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/20.jpg)
• Sequence structure – Anywhere a single action may be placed, we may
place several actions in sequence (Block {…}).
(UML)
action/state
Initial state
Final state
Transition
Control Structure: Sequence
![Page 21: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/21.jpg)
• Three types of selection statements.• if statement:
– Performs an action, if a condition is true; skips it, if false. – Single-selection statement—selects or ignores a single action (or group
of actions). • if…else statement:
– Performs an action if a condition is true and performs a different action if the condition is false.
– Double-selection statement—selects between two different actions (or groups of actions).
• switch statement– Performs one of several actions, based on the value of an expression.– Multiple-selection statement—selects among many different actions
(or groups of actions).
Control Structure: Selection
![Page 22: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/22.jpg)
• Three repetition statements (also called looping statements) – 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 do…while statement performs the action(s) in its
body one or more times. • if, else, switch, while, do and for are keywords.
– Appendix C: Complete list of Java keywords.
Control Structure: Repetition
![Page 23: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/23.jpg)
• Every program is formed by combining the sequence statement, selection statements (three types) and repetition statements (three types) as appropriate for the algorithm the program implements.
• Control-statement stacking—connect the exit point of one to the entry point of the next.
• Control-statement nesting—a control statement inside another.
Stacking and Nesting
![Page 24: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/24.jpg)
if Single-Selection Statement• Pseudocode
If student’s grade is greater than or equal to 60Print “Passed”
• If the condition is false, the Print statement is ignored, and the next pseudocode statement in order is performed.
• The preceding pseudocode If in Java:if ( studentGrade >= 60 ) System.out.println( "Passed" );
Guard condition
![Page 25: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/25.jpg)
if…else Double-Selection Statement
• if…else double-selection statement—specify an action to perform when the condition is true and a different action when the condition is false.
• PseudocodeIf student’s grade is greater than or equal to 60
Print “Passed”Else
Print “Failed”
• The preceding If…Else pseudocode statement in Java:if ( grade >= 60 ) System.out.println( "Passed" );else System.out.println( "Failed" );
![Page 26: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/26.jpg)
if…else Double-Selection Statement (Cont.)
• Can test multiple cases by placing if…else statements inside other if…else statements to create nested if…else statements.
• Pseudocode:If student’s grade is greater than or equal to 90
Print “A”else
If student’s grade is greater than or equal to 80Print “B”
else If student’s grade is greater than or equal to
70 Print “C”
else If student’s grade is greater than or
equal to 60 Print “D”
elsePrint “F”
![Page 27: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/27.jpg)
• This pseudocode may be written in Java asif ( 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" );
• If studentGrade >= 90, the first four conditions will be true, but only the statement in the if part of the first if…else statement will execute. After that, the else part of the “outermost” if…else statement is skipped.
if…else Double-Selection Statement (Cont.)
![Page 28: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/28.jpg)
• Most Java programmers prefer to write the preceding nested if…else statement as
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 forms are identical except for the spacing and indentation, which the compiler ignores.
if…else Double-Selection Statement (Cont.)
![Page 29: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/29.jpg)
• The if statement normally expects only one statement in its body. • To include several statements in the body of an if (or the body of an else
for an if…else statement), 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. • Example: A block in the else part of an if…else statement:
if ( grade >= 60 ) System.out.println("Passed");else { System.out.println("Failed"); System.out.println("You must take this course again.");}
Block
if…else Double-Selection Statement (Cont.)
![Page 30: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/30.jpg)
while Repetition Statement (Cont.)
• Example of Java’s while repetition statement: find the first power of 3 larger than 100.
int product = 100;while ( product <= 100 )
product = 3 * 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 while-statement condition—product <= 100—becomes false.
Merging point
![Page 31: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/31.jpg)
• 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 class average is equal to the sum of the grades divided by the number of students.
• The algorithm for solving this problem on a computer must 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. • 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.
Counter controlled repetition
![Page 32: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/32.jpg)
int counter = 1;while(counter <= 10) { System.out.println(“Repeating this line”); counter = counter + 1; }
Declare a counter variable as an int
and give it its starting value.
Declare a counter variable as an int
and give it its starting value.
Include the counter variable in the
parameter of the while statement with an expression that will initially be true, and
will eventually become false.
Include the counter variable in the
parameter of the while statement with an expression that will initially be true, and
will eventually become false.
Put code to increment (or decrement) the counter inside the
while loop.
Put code to increment (or decrement) the counter inside the
while loop.
![Page 33: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/33.jpg)
Counter controlled repetitionPseudocode
![Page 34: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/34.jpg)
![Page 35: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/35.jpg)
![Page 36: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/36.jpg)
• Variables declared in a block are local variables and cannot be accessed outside the block in which it’s declared!
• This is true of other types of blocks ({…}). E.g., methods, loops, etc.
Counter controlled repetition
![Page 37: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/37.jpg)
A variable can (only) be used within the set of curly braces within which it was declared.
int x;
int y;
x can be used here..
x can be used here..
and here..and here..
y can only be used
here.
y can only be used
here.
![Page 38: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/38.jpg)
• Develop a class-averaging program that processes grades for an arbitrary number of students each time it is run.
• Sentinel-controlled repetition is often called indefinite repetition because the number of repetitions is not known before the loop begins executing.
• A special value called a sentinel value (also called a signal value, a dummy value or a flag value) can be used to indicate “end of data entry.”
• A sentinel value must be chosen that cannot be confused with an acceptable input value (often 9999 or -1).
Sentinel controlled repetition
![Page 39: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/39.jpg)
• Top-down, stepwise refinement• Begin with a pseudocode representation of the top—a single
statement that conveys the overall function of the program: • Determine the class average for the quiz
• Divide the top into a series of smaller tasks and list these in the order in which they’ll be performed.
• First refinement:• Initialize variables
Input, sum and count the quiz gradesCalculate and print the class average
• This refinement uses only the sequence structure—the steps listed should execute in order, one after the other.
Sentinel controlled repetition
![Page 40: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/40.jpg)
• Second refinement: commit to specific variables.
• The pseudocode statement – Initialize variables
• can be refined as follows:– Initialize total to zero
Initialize counter to zero
Sentinel controlled repetition
![Page 41: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/41.jpg)
• The pseudocode statementInput, sum and count the quiz grades
• requires a repetition structure that successively inputs each grade.
• We do not know in advance how many grades are to be processed, so we’ll use sentinel-controlled repetition.
• The second refinement of the preceding pseudocode statement is then
Prompt the user to enter the first gradeInput the first grade (possibly the sentinel)While the user has not yet entered the sentinel
Add this grade into the running totalAdd one to the grade counterPrompt the user to enter the next gradeInput the next grade (possibly the sentinel)
Sentinel controlled repetition
![Page 42: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/42.jpg)
• The pseudocode statementCalculate and print the class average
• can be refined as follows:If the counter is not equal to zero
Set the average to the total divided by the counter
Print the averageelse
Print “No grades were entered”
• Test for the possibility of division by zero—a logic error that, if undetected, would cause the program to fail or produce invalid output.
Sentinel controlled repetition
![Page 43: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/43.jpg)
Sentinel controlled repetitionPseudocode
![Page 44: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/44.jpg)
Sentinel controlled repetitionSyntax
while(boolean expression)
{
//Java statements
} //repeat if boolean expression is still true
If the value of the variable in this
expression is never changed to false within the block, the loop will
repeat indefinitely.
If the value of the variable in this
expression is never changed to false within the block, the loop will
repeat indefinitely.
![Page 45: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/45.jpg)
• Reads the first value before reaching the while.
• This value determines whether the program’s flow of control should enter the body of the while. If the condition of the while is false, the user entered the sentinel value, so the body of the while does not execute (i.e., no grades were entered).
• If the condition is true, the body begins execution and processes the input.
• Then the loop body inputs the next value from the user before the end of the loop.
Sentinel controlled repetition review…
![Page 46: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/46.jpg)
![Page 47: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/47.jpg)
sentinel:-1
sentinel:-1
![Page 48: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/48.jpg)
![Page 49: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/49.jpg)
A college offers a course that prepares students for the state licensing exam for real estate brokers. Last year, ten of the students who completed this course took the exam. The college wants to know how well its students did on the exam. You’ve been asked to write a program to summarize the results. You’ve been given a list of these 10 students. Next to each name is written a 1 if the student passed the exam or a 2 if the student failed.
Developing an Algorithm from a Problem Statement:
![Page 50: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/50.jpg)
• Your program should analyze the results of the exam as follows:– Input each test result (i.e., a 1 or a 2). Display
the message “Enter result” on the screen each time the program requests another test result.
– Count the number of test results of each type.– Display a summary of the test results,
indicating the number of students who passed and the number who failed.
– If more than eight students passed the exam, print the message “Bonus to instructor!”
Developing an Algorithm
Analysis of the Problem
![Page 51: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/51.jpg)
Developing an Algorithm
Map the Solution with Pseudocode
![Page 52: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/52.jpg)
Developing an Algorithm
Code in Java from the Pseudocode
![Page 53: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/53.jpg)
(Code continued)
![Page 54: © 2013 Ken Howard, Southern Methodist University CSE 1341 Topic 3 Control Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062517/56649f1b5503460f94c308a3/html5/thumbnails/54.jpg)