java i lecture_4
TRANSCRIPT
Java I--Copyright © 2000 Tom Hunter
Java I--Copyright © 2000 Tom Hunter
Chapter 4
Control Structures: Part I
Java I--Copyright © 2000 Tom Hunter
“ There is No goto in Java ”
• Structured programming: the building blocks
• There are 3 different kinds of operations in a program:
perform a sequence of actions,
perform a selection between alternative actions, or
perform a repetition or iteration of the same action.
Sequence, Selection, Iteration
Structured Programming
Java I--Copyright © 2000 Tom Hunter
• Sequence: one thing after another
Structured Programming
task1
task2
task3
Java I--Copyright © 2000 Tom Hunter
• Selection: making choices
Structured Programming
taskA
taskB
?YES
NOStructured
programming,
only one entrance,
only one exit.
Java I--Copyright © 2000 Tom Hunter
• Repetition, Part I: doing the same thing again until there’s a reason to stop.
Structured Programming
taskATRUE
FALSE
Do while: maybe won’t ever do taskA even once.
“A while loop repeats as long as a condition is true.”
expression?
Java I--Copyright © 2000 Tom Hunter
• Repetition, Part II: doing the same thing again until there’s a reason to stop.
Structured Programming
taskA
?TRUE
FALSE
Do until: will always do taskA at least once.“A Do Until loop repeats as long as a condition is false.”
Java I--Copyright © 2000 Tom Hunter
Structured Programming
Procedural Structured Programming
• Begin at the top, move to the bottom.
• Each program unit has only one entrance and only one exit.
Java I--Copyright © 2000 Tom Hunter
Selection in JavaObject Oriented Programming
• Within a method, procedural code.
• Simple ‘if’ with or without brackets.
if( expression )statement;
if( expression ){ statement;}
Java I--Copyright © 2000 Tom Hunter
Object Oriented Programming
• Simple ‘if’ with or without brackets.
if( expression )statement;
if( expression ){ statement;}
• Within brackets, a “block.”
Selection in Java
Java I--Copyright © 2000 Tom Hunter
Object Oriented Programming
• Simple ‘if’ / ‘else’ without brackets.
if( expression )statement;
elsestatement;
• Without brackets, limit of only one statement per branch.
Selection in Java
Java I--Copyright © 2000 Tom Hunter
w
Object Oriented Programming
• Simple ‘if’ / ‘else’ with brackets.
if( expression ){
statement;statement;
}else
{statement;statement;
}
Selection in Java
Java I--Copyright © 2000 Tom Hunter
• Compound ‘if’ / ‘else if’ / ‘else if’ / ‘else’.
if( expression ){
statement;}
else if( expression ){
statement;}
else{
statement;}
Selection in Java
Java I--Copyright © 2000 Tom Hunter
• Special “Ternary” ? : Operator—shorthand ‘if’ / ‘else’
1.) expression must evaluate to True or False.
2.) If expression is True, execute the command before the colon.
3.) If expression is False, execute the command after the colon.
Do thisif expression
is True
Do this if expression
is False
Selection in Java
System.out.print(expression ? “True” : “False”)
Java I--Copyright © 2000 Tom Hunter
while—“the Do While”
• The Test is First
Repetition: while Part I
while( expression )statement;
Java I--Copyright © 2000 Tom Hunter
while—“the Do While”
• The Test is First
Repetition: while Part I
while( expression ){
statement;statement;
}
The while { “Do While” } is used when you can’t predict exactly how many times your loop will be executed.
The while may not be executed even once. It executes the loop while the expression is still true.
w
Java I--Copyright © 2000 Tom Hunter
// DoUntil.java// Even though "c" begins the loop false,// it still executes at least once.
public class DoUntil{ public static void main( String args[] ) { boolean c = false; do { System.out.println( ”Execute DoUntil at least once " ); } while( c ); System.exit( 0 ); }}
Java I--Copyright © 2000 Tom Hunter
while—“the Do Until”
• The Test is Last
Repetition: while Part II
do{
statement;statement;
}
while( expression );
w
This do/while {“Do Until”} is also used when you can’t predict exactly how many times your loop will be executed.
It executes at least once. It executes Until the expression becomes false.
Java I--Copyright © 2000 Tom Hunter
// WhileTest.java// Since "c" is already false when it reaches the// test, the loop never executes.
public class DoWhile{ public static void main( String args[] ) { boolean c = false
while( c ) {
System.out.println( ”Execute DoWhile while c is true" ); }
System.exit( 0 ); }}
Java I--Copyright © 2000 Tom Hunter
// SelectionTest.javaimport javax.swing.*;
public class SelectionTest{
public static void main( String args[] ){
int b, s;String big, small, out;
big = JOptionPane.showInputDialog( "Big Number" );small = JOptionPane.showInputDialog( "Small Number" );b = Integer.parseInt( big );s = Integer.parseInt( small );
out = ( b > s ? "Big was larger" : "Small was larger" );
JOptionPane.showMessageDialog( null, out, "Results",JOptionPane.INFORMATION_MESSAGE);
System.exit( 0 );}
}
• Test Trinary Operator
Java I--Copyright © 2000 Tom Hunter
// DoWhileTest.javaimport javax.swing.*;
public class DoWhileTest{
public static void main( String args[] ){ int b = 2, s = 1; String big, small, out = “Big is still Bigger”;
while( b > s ) { JOptionPane.showMessageDialog( null,
out, "Results",JOptionPane.INFORMATION_MESSAGE);
big = JOptionPane.showInputDialog( "Big Number" ); small = JOptionPane.showInputDialog( "Small Number" ); b = Integer.parseInt( big ); s = Integer.parseInt( small ); }
System.exit( 0 );}
}
• Test DoWhile
Java I--Copyright © 2000 Tom Hunter
// DoUntilTest.javaimport javax.swing.*;
public class DoUntilTest{
public static void main( String args[] ){ int b = 2, s = 1; // preload variables. String big, small, out = “Big is still Bigger”;
do{ JOptionPane.showMessageDialog( null,
out, "Results",JOptionPane.INFORMATION_MESSAGE);
big = JOptionPane.showInputDialog( "Big Number" ); small = JOptionPane.showInputDialog( "Small Number" ); b = Integer.parseInt( big ); s = Integer.parseInt( small );}
while( b > s );
System.exit( 0 );}
}
• Test DoUntil
Java I--Copyright © 2000 Tom Hunter
Repetition: while Loops
• The majority of applications use the plain while loop.
• Choose either while loop when you can’t know in advance how many times the loop will be executed.
• The loop is repeated until it encounters a sentinel value,
that announces that the loop has finished.
Java I--Copyright © 2000 Tom Hunter
Assignment Operators• We are already familiar with this statement:
int x;
x = 15;
• This means the value 15 is placed into the variable x.
• We say, “15 is assigned to x.”
• In Java, a single equals sign is the assignment operator.
Java I--Copyright © 2000 Tom Hunter
Assignment Operators
• Another common bit of code is this:int x; Declares x as an int.
x = 15;After this assignment,x contains 15.
x = x + 5;After this assignment,x contains 20.
First the addition on the right is done. Then, the result is assigned to the the variable on the left.
Java I--Copyright © 2000 Tom Hunter
Assignment Operators
• Java offers a shortcut to the statement below:
int x = 15;
x = x + 5;After this assignment,x contains 20.
x += 5;
After this assignment,x contains 20.
+=
Java I--Copyright © 2000 Tom Hunter
Assignment Operators
• Java offers a shortcut to the statement below:
int x = 15;
x = x - 5;After this assignment,x contains 10.
x -= 5;
After this assignment,x contains 10.
-=
Java I--Copyright © 2000 Tom Hunter
Assignment Operators
• Java offers a shortcut to the statement below:
int x = 15;
x = x * 5;After this assignment,x contains 75.
x *= 5;
After this assignment,x contains 75.
*=
Java I--Copyright © 2000 Tom Hunter
Assignment Operators
• Java offers a shortcut to the statement below:
int x = 15;
x = x / 5;After this assignment,x contains 3.
x /= 5;
After this assignment,x contains 3.
/=
Java I--Copyright © 2000 Tom Hunter
Assignment Operators
• Java offers a shortcut to the statement below:
int x = 15;
x = x % 5;After this assignment,x contains 0.
x %= 5;
After this assignment,x contains 0.
%=
Java I--Copyright © 2000 Tom Hunter
Increment/Decrement Operators
• There is one addition statement in Java that is so common, it gets its own operator.
• It means, simply, “Add one to the variable.”
x++ x--
Java I--Copyright © 2000 Tom Hunter
Increment/Decrement Operators
• Java offers a shortcut to the statement below:
int x = 2;
x = x + 1;After this assignment,x contains 3.
x++;
After this assignment,x contains 3.x++
Java I--Copyright © 2000 Tom Hunter
Increment/Decrement Operators
• Java offers a shortcut to the statement below:
int x = 2;
x = x - 1;After this assignment,x contains 1.
x--;After this assignment,x contains 1.
x--
Java I--Copyright © 2000 Tom Hunter
Increment/Decrement Operators
• You can do a pre-increment, or a post-increment.
Pre Post
++x; x++;
--x; x--;
• If each of these statements is on a line by itself, there is no difference in the effect of doing a pre- or post-increment.
Java I--Copyright © 2000 Tom Hunter
Increment/Decrement Operators
• If each of these statements is on a line by itself, there is no difference in the effect of doing a pre- or post-increment.
• However, if the variable—which is having the pre- or post-increment applied to it—is used within another statement, your choice of pre- or post-increment can alter your results.
Java I--Copyright © 2000 Tom Hunter
// PrePostIncrement.java
public class PrePostIncrement{
public static void main( String args[] ){ int x=0;
System.out.println( " Baseline, x = " + x );
System.out.println( "\n Pre-increment = ++x = " + ++x );
System.out.println( "\n After increment, x = " + x );
x = 0; System.out.println( "\n 2nd Baseline, x = " + x );
System.out.println( "\n Post-increment = x++ = " + x++ );
System.out.println( "\n After increment, x = " + x );
System.exit( 0 );}
}
Baseline, x = 0
Pre-increment = ++x = 1
After increment, x = 1
2nd Baseline, x = 0
Post-increment = x++ = 0
After increment, x = 1
w
Java I--Copyright © 2000 Tom Hunter