comp 110 introduction to programming mr. joshua stough september 24, 2007

39
COMP 110 Introduction to Programming Mr. Joshua Stough September 24, 2007

Post on 22-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

COMP 110Introduction to Programming

Mr. Joshua StoughSeptember 24, 2007

Announcements

One-Way Selection

if (expression) if (expression) {statement statement(s)

}

Two-Way Selection

if (expression)statement1

elsestatement2

if (expression) {statement(s)1

}else {statement(s)2

}

Two-Way SelectionAnd White Space

if (expression) {statement(s)

} else {statement(s)

}

if (expression) {statement(s)

} else {

statement(s)}

if (expression) {

statement(s)} else {

statement(s)}

The switch Statement

switch (expression) { case value1:

statements1break;

case value2:statements2break;

case value3:statements3break;

default:statements

}

switch and nested if-else

if (expression == value1) {statements1

} else if (expression == value 2) {statements2

} else if (expression == value 3) {statements3

} else {statements

}

switch (expression) { case value1:

statements1break;

case value2:statements2break;

case value3:statements3break;

default:statements

}

Writing Selection StatementsWhat Type of Construct To Use?

• Only need to execute additional statements if condition is true

• Need to execute separate additional statements based on if the condition is true or false

• Need to execute different statements based on multiple conditions

• Need to execute different statements based on an expression that evaluates to a char or int

if

if-else

nested if-else

switch

Writing Selection Statements• Write the outline of the selection statement

– keywords– curly braces– case and break statements (for switch)

• Write the expression– boolean expression, or condition– expression or variable evaluating to char or int

• Write statements that execute based on the condition

Example

Write a selection statement that sets grade to 'F' if score is less than 60 and sets grade to 'P' if score is greater than or equal to 60.

1) Choose constructif-else

3) Add conditionif (score < 60) {

} else {

}

4) Add statementsif (score < 60) {

grade = 'F';} else {

grade = 'P';}

2) Write outlineif ( ) {

} else {

}

Questions

What type of selection statement should be used?

1. Print "Male" if gender is 'M' and "Female" if gender is 'F'.

2. Print the state associated with areaCode, where areaCode is an int.

3. Print the maximum of three integers.

if-else

switch

nested if-else

Question

Assume that the lengths of 3 sides of a triangle are given in the integer variables side1, side2, and side3.

Write code that will print:– "Equilateral" if all three sides are equal– "Isosceles" if only two sides are equal– "Scalene" if no sides are equal

equilateral isosceles

scalene

First, what selection construct should be used?

nested if-else

Answer

// side1, side2, and side3 are lengths// of the sides of a triangle

if (side1 != side2 && side2 != side3 && side1 != side3) {// no sides are equalSystem.out.println ("Scalene");

} else if (side1 == side2 && side2 == side3) {// all sides are equalSystem.out.println ("Equilateral");

} else {// two sides are equalSystem.out.println ("Isosceles");

}

Today in COMP 110

• Repetition statements• while loops

• Textbook Reference: Chapter 5 (pgs. 237-316)

Why Is Repetition Needed?• Want to add 5 integers to find their average?

– declare a variable for each integer– initialize the sum– read in the user input one at a time– sum the numbers– take the average

• Want to add 1000 integers to find their average?

repeat steps 3 and 4 1000 times

1. declare one variable for input2. initialize the sum3. read in one line of user input4. add to the sum5. take the average

Repetition Statements

• Allow us to execute a statement multiple times

• Often referred to as loops• Controlled by boolean expressions

– like selection, or conditional, statements

• Java has three kinds of repetition statements:– the while loop– the for loop– the do loop

Loops

• Must use a loop control variable– controls how many times to loop

• 4 Parts to Every Loop– initialization - set loop control variable

before condition– condition - when to stop– update - change to the loop control

variable– body - actions to repeat

Typical Uses of Loops

• Repeat a section of code a specified number of times - counter-controlled

• Repeat a section of code (reading input) until the a specific value is read - sentinel-controlled

• Repeat a section of code (reading input) until a valid value is entered - input validation

• Repeat a section of code (reading from a file) until the end of the file is reached - EOF-controlled

• Repeat a section of code until a boolean variable becomes false - flag-controlled

The while LoopSyntax

while ( condition ) { loop body;}

while is areserved word

If the condition is true, the loop body is executed.Then the condition is evaluated again.

The loop body is executed repeatedly untilthe condition becomes false.

The while Loop

• Syntaxwhile (expression)

statement

• Expression is always true in an infinite loop

• Statements must change value of expression to false

The while LoopExample

final int LIMIT = 3;

int count = 0;

while (count < LIMIT) {

System.out.println (count);

count++;

}

System.out.println (“All done!”);

booleancondition

loopbodyupdate

initialization

Output:012All done!

The while LoopWhat's Going On?

final int LIMIT = 3;

int count = 0;

while (count < LIMIT) {

System.out.println (count);

count++;

}

System.out.println

(“All done!”);

LIMIT count

Output:

3 0

1

0

1

2

All done!

2

3

The while Loop

final int LIMIT = 3;

int count = 0;

while (count < LIMIT) {

count++;

System.out.println (count);

}

System.out.println (“All done!”);

Output:123All done!

The while Loop

final int LIMIT = 3;

int count = 0;

while (count < LIMIT) {

System.out.println (count);

}

System.out.println (“All done!”);

Output:0000000000...

The while Loop

final int LIMIT = 3;

int count = 0;

while (count <= LIMIT) {

System.out.println (count);

count++;

}

System.out.println (“All done!”);

Output:0123All done!

The while Loop

• If the condition of a while statement is false initially, the loop body is never executed

• The body of a while loop will execute zero or more times

Counter-Controlled while Loop• Used when exact number of times

statements should execute is known• Basic Form:

counter = 0;

while (counter < N)

{

...

counter++;

...

}

N is the numberof times theloop should execute

Examplefinal int NUM_STUDENTS = 100;int sum = 0;double average;int i = 0; // initialize loop control var

while (i < NUM_STUDENTS) {sum += Integer.parseInt(inFile.readLine());i++; // update loop control variable

}average = (double) sum / NUM_STUDENTS;

Often we use i, j, k as counter variable names.

Reading From a File

• How do you know how many items there will be?

1. ask the user2. arrange the data file so that the first item

is the number of items in the file

• Other ways to read all of the items:– use sentinel value– read until end-of-file (EOF)

Sentinel-Controlled while Loop

• Used when exact number of entry pieces is unknown but last entry (special / sentinel value) is known

• Basic Form:

input the first data item into variable

while (variable != sentinel)

{

...

input a data item into variable

}

Exampleint i = 0, sum = 0, score;final int SENTINEL = -99;double average;

// initialize the loop control variablescore = Integer.parseInt(inFile.readLine());while (score != SENTINEL) {sum += score;// update the loop control variablescore = Integer.parseInt(inFile.readLine());

}average = (double) sum / NUM_STUDENTS;

Average.java Example

• Read in integers and print their sum until the user enters 0

• Print the average of the numbers entered

Input Validation while Loop

• Used to ensure that the user enters valid input

• Basic Form:

input the first data item into variable

while (variable is not in valid range)

{

ask the user for valid input

input a data item into variable

}

Example

int num;

// initialize loop control variableSystem.out.print (“Enter a number [0-100]: ");num = Integer.parseInt(keyboard.readLine());

while ((num < 0) || (num > 100)) {System.out.println (num + " is not [0-100]");System.out.print (“Enter a number: “);// update the loop control variablenum = Integer.parseInt(keyboard.readLine());

}System.out.println (“You entered “ + num);

WinPercentage.java Example

• Ask user for number of games won between (0 - 12)

• Keep asking until get a number between (0 - 12)

• Compute the winning percentage

Flag-Controlled while Loop• Boolean value used to control loop• Basic Form:

boolean found = false; while (!found){

... if(expression) found = true;

...}

EOF-Controlled while Loop• Used when input is from a file• Sentinel value is not always appropriate• Basic Form:

inputLine = inFile.readLine();while (inputLine != null) {

...inputLine = inFile.readLine();

}

null is a reserved word

TelephoneDigitProgram.java

• In textbook pg. 209-210

• Ask user for uppercase letter

• Print telephone digit for that letter

• Enter 'Q' or 'Z' to quit

Next Time in COMP 110

• for loops• do...while loops

• Reading: Ch 5 (pgs. 229-247)