chapter 5 - control structures - part 2 outline 5.1introduction 5.2essentials of counter-controlled...

43
Chapter 5 - Control Structures - Part 2 Outline 5.1 Introduction 5.2 Essentials of Counter-Controlled Repetition 5.3 The for Repetition Structure 5.4 Examples Using the for Structure 5.5 The switch Multiple-Selection Structure 5.6 The do/while Repetition Structure 5.7 The break and continue Statements 5.8 The Labeled break and continue Statements 5.9 Logical Operators 5.10 Structured Programming Summary

Post on 19-Dec-2015

262 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Chapter 5 - Control Structures - Part 2

Outline5.1 Introduction5.2 Essentials of Counter-Controlled Repetition5.3 The for Repetition Structure5.4 Examples Using the for Structure5.5 The switch Multiple-Selection Structure5.6 The do/while Repetition Structure5.7 The break and continue Statements5.8 The Labeled break and continue Statements5.9 Logical Operators5.10 Structured Programming Summary

Page 2: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.2 Counter-Controlled Repetition

• Example– Counter-controlled repetition

Page 3: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

1. import

2. Class WhileCounter

3. paint

3.1 Initialize counter

3.2 Loop

3.3 drawLine

3.4 Increment

Program Output

1// Fig. 5.1: WhileCounter.java

2// Counter-controlled repetition

3import java.awt.Graphics;

4import javax.swing.JApplet;

5

6public class WhileCounter extends JApplet {

7 public void paint( Graphics g )

8 {

9 int counter = 1; // initialization

10

11 while ( counter <= 10 ) { // repetition condition

12 g.drawLine( 10, 10, 250, counter * 10 );

13 ++counter; // increment

14 }

15 }

16}

Page 4: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.2 Essentials of Counter-Controlled Repetition

– Method drawLine( x1, y1, x2, y2 )• Called using reference to Graphics object

• Draws line from (x1, y1) to (x2, y2)

12 g.drawLine( 10, 10, 250, counter * 10 );

Page 5: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.2 Essentials of Counter-Controlled Repetition

while ( ++counter <= 10 ) //repetition condition

g.drawLine( 10, 10, 250, counter *10 );

• Increment done inside while

Page 6: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.3 The for Repetition Structure

• Redo previous example– Use for structure

Page 7: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Loop using for

Program Output

1// Fig. 5.2: ForCounter.java

2// Counter-controlled repetition with the for structure

3import java.awt.Graphics;

4import javax.swing.JApplet;

5

6public class ForCounter extends JApplet {

7 public void paint( Graphics g )

8 {

9 // Initialization, repetition condition and incrementing

10 // are all included in the for structure header.

11 for ( int counter = 1; counter <= 10; counter++ )

12 g.drawLine( 10, 10, 250, counter * 10 );

13 }

14}

Page 8: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.3 The for Repetition Structure

– for "does it all" : initialization, condition, increment

– General format

for ( initialization; loopContinuationTest; increment )

statement

• If multiple statements needed, enclose in braces

11 for ( int counter = 1; counter <= 10; counter++ )

12 g.drawLine( 10, 10, 250, counter * 10 );

Page 9: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.3 The for Repetition Structure

• May use arithmetic expressions in for loops– Let x =2, y=10

for ( int j = x; j <= 4 * x * y; j += y / x )

is equivalent tofor ( int j = 2; j <= 80; j += 5 )

• for can usually be written as a while loop:– Exception in section 5.7

initialization;while ( loopContinuationTest ) {

statement increment;

}

Page 10: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.3 The for Repetition Structure

11 for ( int counter = 1; counter <= 10; counter++ )

12 g.drawLine( 10, 10, 250, counter * 10 );

true

false

int counter = 1

counter <= 10 counter++

g.drawLine( 10, 10, 250, counter * 10 );

Establish initial value of control variable.

Determine if final value of control variable has been reached.

Body of loop (this may be many statements)

Increment the control variable.

Page 11: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.4 Examples Using the for Structure

• Problem– Calculate the value each year of a $1000 deposit, yielding

5% annually• Calculate the value for 10 years

– Use a = p (1 + r )• p - principal

• r - interest rate

• n - number of years

• a - amount on deposit after nth year

• Example program– Use a for loop to calculate interest

n

Page 12: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Use for loop to calculate interest

1// Fig. 5.6: Interest.java

2// Calculating compound interest

3import java.text.DecimalFormat;

4import javax.swing.JOptionPane;

5import javax.swing.JTextArea;

6

7public class Interest {

8 public static void main( String args[] )

9 {

10 double amount, principal = 1000.0, rate = .05;

11

12 DecimalFormat precisionTwo = new DecimalFormat( "0.00" );

13 JTextArea outputTextArea = new JTextArea( 11, 20 );

14

15 outputTextArea.append( "Year\tAmount on deposit\n" );

16

17 for ( int year = 1; year <= 10; year++ ) {

18 amount = principal * Math.pow( 1.0 + rate, year );

19 outputTextArea.append( year + "\t" +

20 precisionTwo.format( amount ) + "\n" );

21 }

22

23 JOptionPane.showMessageDialog(

24 null, outputTextArea, "Compound Interest",

25 JOptionPane.INFORMATION_MESSAGE );

26

27 System.exit( 0 ); // terminate the application

28 }

29}

Page 13: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Program Output

Page 14: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.4 Examples Using the for Structure

– Variables used

– Class DecimalFormat (package java.text)• Passed format control string "0.00"• Exactly two digits to right of decimal, at least one to left

• Method format returns formatted String

– Class JTextArea (package javax.swing)• GUI component, can display many lines of text

• Initialized to display 11 rows and 20 columns of text

10 double amount, principal = 1000.0, rate = .05;

12 DecimalFormat precisionTwo = new DecimalFormat( "0.00" );

13 JTextArea outputTextArea = new JTextArea( 11, 20 );

Page 15: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.4 Examples Using the for Structure

– Method append (of class JTextArea)• Add text to the String already in JTextArea object

• Initially contains empty string

– for loop executes 10 times– static method pow (class Math)

• Math.pow( x, y )• Raises x to the yth power

• Takes two doubles, returns a double

15 outputTextArea.append( "Year\tAmount on deposit\n" );

21 }

17 for ( int year = 1; year <= 10; year++ ) {18 amount = principal * Math.pow( 1.0 + rate, year );19 outputTextArea.append( year + "\t" +20 precisionTwo.format( amount ) + "\n" );

Page 16: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.4 Examples Using the for Structure

– static method showMessageDialog • Class JOptionPane• Up till now, displayed Strings• showMessageDialog can display a String or GUI

component, such as a JTextArea

23 JOptionPane.showMessageDialog(

24 null, outputTextArea, "Compound Interest",

25 JOptionPane.INFORMATION_MESSAGE );

Page 17: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

1. import

2. Class Interest

2.1 Initialize variables

2.2 DecimalFormat

3. for loop

3.1 Math.pow

3.2 append

3.3 format

3.4 showMessageDialog

1// Fig. 5.6: Interest.java

2// Calculating compound interest

33import java.text.DecimalFormat;

4import javax.swing.JOptionPane;

5import javax.swing.JTextArea;

6

7public class Interest {

8 public static void main( String args[] )

9 {

10 double amount, principal = 1000.0, rate = .05;

11

12 DecimalFormat precisionTwo = new DecimalFormat( "0.00" );

1313 JTextArea outputTextArea = new JTextArea( 11, 20 );

14

15 outputTextArea.append( "Year\tAmount on deposit\n" );

16

17 for ( int year = 1; year <= 10; year++ ) {

1818 amount = principal * Math.pow( 1.0 + rate, year );

1919 outputTextArea.append( year + "\t" +

2020 precisionTwo.format( amount ) + "\n" );

21 }

22

2323 JOptionPane.showMessageDialog(

24 null, outputTextArea, "Compound Interest",

25 JOptionPane.INFORMATION_MESSAGE );

26

27 System.exit( 0 ); // terminate the application

28 }

29}

Notice the import statements required.

New JTextArea object initialized to hold 11 rows and 20 columns of text.

new operator used to create new objects.

Use method append to add to the String in the JTextArea object.

Notice the format of method Math.pow

Use method format to output the formatted number as a String.

Use the JTextArea reference as an argument to showMessageDialog

Page 18: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Program Output

Page 19: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.5 The switch Multiple-Selection Structure

• switch statements– Useful to test a variable for different values

• Different action taken

• Format– Series of case labels and an optional default caseswitch ( value ){

case '1':actions

case '2':actions

default:actions

}– break; causes exit from structure

Page 20: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.5 The switch Multiple-Selection Structure

true

false

.

.

.

case a case a action(s) break

case b case b action(s) break

false

false

case z case z action(s) break

true

true

default action(s)

Page 21: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Class SwitchTest

1// Fig. 5.7: SwitchTest.java2// Counting letter grades3import java.awt.Graphics;4import javax.swing.*;56public class SwitchTest extends JApplet {7 int choice; 89 public void init()10 {11 String input;1213 input = JOptionPane.showInputDialog( 14 "Enter 1 to draw lines\n" +15 "Enter 2 to draw rectangles\n" +16 "Enter 3 to draw ovals\n" );1718 choice = Integer.parseInt( input );19 }2021 public void paint( Graphics g )22 {23 for ( int i = 0; i < 10; i++ ) { 24 switch( choice ) {25 case 1:26 g.drawLine( 10, 10, 250, 10 + i * 10 );27 break;28 case 2:29 g.drawRect( 10 + i * 10, 10 + i * 10,30 50 + i * 10, 50 + i * 10 );31 break;

Page 22: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Program Output

34 50 + i * 10, 50 + i * 10 );

35 break;

36 default:

37 JOptionPane.showMessageDialog(

38 null, "Invalid value entered" );

39 } // end switch

40 } // end for

41 } // end paint()

42} // end class SwitchTest

32 case 3:33 g.drawOval( 10 + i * 10, 10 + i * 10,

Page 23: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Program Output

Page 24: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.5 The switch Multiple-Selection Structure

– Method init• Get input from user

9 public void init()

10 {11 String input;1213 input = JOptionPane.showInputDialog( 14 "Enter 1 to draw lines\n" +

15 "Enter 2 to draw rectangles\n" +16 "Enter 3 to draw ovals\n" );

1718 choice = Integer.parseInt( input );19 }

7 int choice;

Page 25: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.5 The switch Multiple-Selection Structure

– switch structure - compare choice to cases• case labels - can be constant integral values of type byte, short, int, long, and char

– Use single quotes to represent characters: 'A'– Can have multiple actions per case

• break - exits switch structure

• default label - optional, actions to take if no cases met

24 switch( choice ) {

25 case 1:

26 g.drawLine( 10, 10, 250, 10 + i * 10 );

27 break;

36 default:

37 JOptionPane.showMessageDialog(

38 null, "Invalid value entered" );

Page 26: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.6 The do/while Repetition Structure

• The do/while repetition structure – Similar to the while structure

– Condition for repetition tested after the body of the loop is performed

– Actions are performed at least once

• Format– do {

statement } while ( condition );

– Good practice to put brackets in, even if not required

Page 27: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.6 The do/while Repetition Structure

true

false

action(s)

condition

Page 28: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

1. Class DoWhileTest

2. paint

3. do/while loop

Program Output

1// Fig. 5.9: DoWhileTest.java

2// Using the do/while repetition structure

3import java.awt.Graphics;

4import javax.swing.JApplet;

5

6public class DoWhileTest extends JApplet {

7 public void paint( Graphics g )

8 {

9 int counter = 1;

10

11 do {

1212 g.drawOval( 110 - counter * 10, 110 - counter * 10,

13 counter * 20, counter * 20 );

14 ++counter;

15 } while ( counter <= 10 );

16 }

17}

Page 29: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.7 The break and continue Statements

• break– Immediate exit from while, for, do/while or switch– Program continues with the first statement after the structure

– Common uses of the break statement• Escape early from a loop

• Skip the remainder of a switch structure

Page 30: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.7 The break and continue Statements

• continue– Skips the remaining statements in body of while, for or do/while

• Proceeds with the next iteration of the loop

– while and do/while• Loop-continuation test is evaluated immediately after continue

– for structure• Increment expression is executed, then the loop-continuation

test is evaluated

Page 31: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

1. Class BreakTest

2. main

2.1 for loop

2.2 break

Program Output

1// Fig. 5.11: BreakTest.java2// Using the break statement in a for structure3import javax.swing.JOptionPane;45public class BreakTest {6 public static void main( String args[] )7 {8 String output = "";9 int count;1011 for ( count = 1; count <= 10; count++ ) {12 if ( count == 5 )

1313 break; // break loop only if count == 51415 output += count + " ";16 }1718 output += "\nBroke out of loop at count = " + count;19 JOptionPane.showMessageDialog( null, output );20 System.exit( 0 );21 }22}

break causes an immediate exit from the loop.

Page 32: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

1. Class ContinueTest

2. main

2.1 for loop

2.2 continue

Program Output

1// Fig. 5.12: ContinueTest.java2// Using the continue statement in a for structure3import javax.swing.JOptionPane;45public class ContinueTest {6 public static void main( String args[] )7 {8 String output = "";910 for ( int count = 1; count <= 10; count++ ) {11 if ( count == 5 )

1212 continue; // skip remaining code in loop13 // only if count == 51415 output += count + " ";16 }1718 output += "\nUsed continue to skip printing 5";19 JOptionPane.showMessageDialog( null, output );20 System.exit( 0 );21 }

continue skips the rest of the body and goes to the next iteration.

Page 33: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.8 The Labeled break and continue Statements

• Nested set of structures– break statement

• Can only break out of immediately enclosing structure

– Use labeled break statement• Label - identifier followed by colon, i.e. myLabel:• Breaks out of enclosing statement and any number of

repetition structures

• Program resumes after enclosing labeled compound statement

– Labeled continue statement• Skips statements in enclosing structure

• Continues with next iteration of enclosing labeled repetition structure

– Repetition structure preceded by a label

Page 34: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

1. Class BreakLabelTest

2. stop:

2.1 for loop

2.2 Nested for loop

2.3 break stop

1// Fig. 5.13: BreakLabelTest.java

2// Using the break statement with a label

3import javax.swing.JOptionPane;

4

5public class BreakLabelTest {

6 public static void main( String args[] )

7 {

8 String output = "";

9

1010 stop: { // labeled compound statement

11 for ( int row = 1; row <= 10; row++ ) {

12 for ( int column = 1; column <= 5 ; column++ ) {

13

14 if ( row == 5 )

1515 break stop; // jump to end of stop block

16

17 output += "* ";

18 }

19

20 output += "\n";

21 }

22

23 // the following line is skipped

24 output += "\nLoops terminated normally";

25 }

26

Begins labeled compound statement stop:

Labeled break statement to exit stop block.

Page 35: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Program Output

27 JOptionPane.showMessageDialog(

28 null, output,"Testing break with a label",

29 JOptionPane.INFORMATION_MESSAGE );30 System.exit( 0 );

31 }

32}

Page 36: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

1. Class ContinueLabelTest

2. nextRow:

2.1 for loop

2.2 Nested for loop

2.3 continue nextRow

1// Fig. 5.14: ContinueLabelTest.java

2// Using the continue statement with a label3import javax.swing.JOptionPane;

4

5public class ContinueLabelTest {

6 public static void main( String args[] )7 {

8 String output = "";

9

1010 nextRow: // target label of continue statement

11 for ( int row = 1; row <= 5; row++ ) {

12 output += "\n";13

14 for ( int column = 1; column <= 10; column++ ) {

15

16 if ( column > row )17 continue nextRow; // next iteration of

18 // labeled loop

19 20 output += "* ";

21 }

22 }23

24 JOptionPane.showMessageDialog(

25 null, output,"Testing continue with a label",

26 JOptionPane.INFORMATION_MESSAGE );27 System.exit( 0 );

28 }

29}

This label applies to the following for loop (labeled repetition structure).

Labeled continue statement skips remaining statements, goes to next iteration of labeled repetition structure.

Page 37: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

Program Output

Page 38: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.9 Logical Operators

• Logical Operators– Till now, used <, >, ==, etc to test conditions

– Logical operators allow more complex conditions– && (logical AND)

• Returns true if both conditions are true

– || (logical OR) • Returns true if either of its conditions are true

– ! (logical NOT, logical negation)• Reverses the truth/falsity of its condition

– Short circuit evaluation• Evaluate left operand, decide whether to evaluate right

operand

• If left operand of && is false, will not evaluate right operand

Page 39: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.9 Logical Operators

• Boolean Logical Operators– ^ (Boolean logical exclusive OR)

• true if exactly one condition true

– Boolean logical AND (&) and boolean logical inclusive OR (|)

• Work identical to regular logical AND and logical OR

• Always evaluates both expressions (no short-circuit evaluation)

• Useful if right operand has a needed side effect

birthday == true | ++age >= 65

Page 40: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.9 Logical Operators

• Examples

Expression Result

true && false falsetrue || false true

!false truetrue ^ true false

Page 41: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

1. Class LogicalOperators

1.1 JTextArea

1.2 JScrollPane

2. Logical operators

1// Fig. 5.19: LogicalOperators.java

2// Demonstrating the logical operators

3import javax.swing.*;

4

5public class LogicalOperators {

6 public static void main( String args[] )

7 {

88 JTextArea outputArea = new JTextArea( 17, 20 );

99 JScrollPane scroller = new JScrollPane( outputArea );

10 String output = "";

11

12 output += "Logical AND (&&)" +

1313 "\nfalse && false: " + ( false && false ) +

14 "\nfalse && true: " + ( false && true ) +

15 "\ntrue && false: " + ( true && false ) +

16 "\ntrue && true: " + ( true && true );

17

18 output += "\n\nLogical OR (||)" +

19 "\nfalse || false: " + ( false || false ) +

20 "\nfalse || true: " + ( false || true ) +

21 "\ntrue || false: " + ( true || false ) +

22 "\ntrue || true: " + ( true || true );

23

24 output += "\n\nBoolean logical AND (&)" +

25 "\nfalse & false: " + ( false & false ) +

26 "\nfalse & true: " + ( false & true ) +

27 "\ntrue & false: " + ( true & false ) +

28 "\ntrue & true: " + ( true & true );

29

JTextArea can display many lines of text. This one can display 17 rows and 20 columns.

This creates a JScrollPane object and initializes it with outputArea. This adds scrolling to outputArea.

Use the logical operators. Boolean values converted to Strings.

Page 42: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

3. setText34 "\ntrue | true: " + ( true | true );

35

36 output += "\n\nBoolean logical exclusive OR (^)" +

37 "\nfalse ^ false: " + ( false ^ false ) +

38 "\nfalse ^ true: " + ( false ^ true ) +

39 "\ntrue ^ false: " + ( true ^ false ) +

40 "\ntrue ^ true: " + ( true ^ true );

41

42 output += "\n\nLogical NOT (!)" +

43 "\n!false: " + ( !false ) +

44 "\n!true: " + ( !true );

45

4646 outputArea.setText( output );

47 JOptionPane.showMessageDialog( null, scroller,

48 "Truth Tables", JOptionPane.INFORMATION_MESSAGE );

49 System.exit( 0 );

50 }

51 }

30 output += "\n\nBoolean logical inclusive OR (|)" +

31 "\nfalse | false: " + ( false | false ) +

32 "\nfalse | true: " + ( false | true ) +

33 "\ntrue | false: " + ( true | false ) +

Method setText replaces the String in the JTextArea.

Page 43: Chapter 5 - Control Structures - Part 2 Outline 5.1Introduction 5.2Essentials of Counter-Controlled Repetition 5.3The for Repetition Structure 5.4Examples

5.10Structured Programming Summary

Rule 3

Rule 3Rule 3

Rule 3 - Replace any rectangle with a control structure