Announcements/Reminders

Please download to get full document.

View again

of 37
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information Report
Category:

Documents

Published:

Views: 2 | Pages: 37

Extension: PPT | Download: 0

Share
Related documents
Description
System.out.println('Blast off!'); Output: T = 3 and counting ... Blast off! Chapter 3. Java: an Introduction to Computer Science & Programming - Walter Savitch ...
Tags
Transcript
Title: Announcements/Reminders 1 Announcements/Reminders
  • Newsgroup news.purdue.edu purdue.class.cs180
  • Exam 1
  • Thursday Feb. 10, 700-800 pm
  • If you have a conflict, contact KC VanZandt at least a week before!
  • Covers chapters 1-4
  • Project 2 released due Thursday, Feb. 3 at 1030 pm.
  • Start early
  • 2 Chapter 3 Flow of Control
  • Branching
  • Loops
  • exit(n) method
  • Boolean data type and expressions
  • 3 Programming Tip
  • Always enclose the body of an if/loop statement in braces, even if there is only one statement.
  • Prevents bugs when adding code later.
  • if(eggsPerBasket lt 12) System.out.println(Less than a dozen ...) costPerBasket 1.1 costPerBasket // Above line always executed despite indentation totalEggs numberOfEggs eggsPerBasket System.out.println(You have a total of totalEggs eggs.) 4 Multiple Statements
  • Action if true can be either a single Java statement or a set of statements enclosed in braces .
  • A set of statements in braces is called a compound statement and can be used anywhere a single statement can be used.
  • All statements between braces are controlled by if if(eggsPerBasket lt 12) //begin body of the if statement System.out.println(Less than a dozen ...) costPerBasket 1.1 costPerBasket //end body of the if statement totalEggs numberOfEggs eggsPerBasket System.out.println(You have a total of totalEggs eggs.) 5 Nested if Statements if (balance gt 0) if (RATE gt 0) balance balance (RATE balance)/12 else Sys tem.out.println("Cannot have negative rate") else balance balance OVERDRAWN_PENALTY 6 if-else if-else if--else Example if (score gt 90) grade 'A' if (score gt 80) grade 'B' if (score gt 70) grade 'C' if (score gt 60) grade 'D' else grade 'F'
  • if(score gt 90)
  • grade 'A'
  • else if (score gt 80)
  • grade 'B'
  • else if (score gt 70)
  • grade 'C'
  • else if (score gt 60)
  • grade 'D'
  • else
  • grade 'F'
  • What would be the results with a score of 93? 7 Multibranch selection switch switch(Controlling_Expression) case Case_Label statements break case Case_Label statements break default statements break
  • Another way to program multibranch selection (instead of if-else if-else...)
  • Similar to if-else if-else at each case, it tests to see if Case_Label Controlling_Expressi on
  • See next slide for example
  • 8 switch(seatLocationCode) case 1 System.out.println(Orchestra) price 40.00 break case 2 System.out.println( Mezzanine) price 30.00 break default System.out.println(Unknown seat code) break
  • if(seatLocationCode 1)
  • System.out.println(Orchestra)
  • price 40.00
  • else if (seatLocationCode 2)
  • System.out.println(Mezzanine)
  • price 30.00
  • else
  • System.out.println(Unknown seat code)
  • 9 Additional switch Example
  • switch (gender)
  • case f
  • case F
  • System.out.println(Female)
  • break
  • case m
  • case M
  • System.out.println(Male)
  • break
  • default
  • System.out.println(Invalid gender.)
  • 10 Switch leaving out the break
  • switch (grade)
  • case A
  • System.out.println(You got an A)
  • case B
  • System.out.println(You got a B)
  • case C
  • System.out.println(You got a C)
  • case D
  • System.out.println(You got a D)
  • case F
  • System.out.println(You got an F)
  • 11 Switch Output
  • If grade was A
  • You got an A
  • You got a B
  • You got a C
  • You got a D
  • You got an F
  • 12 Switch correct way
  • switch (grade)
  • case A
  • System.out.println(You got an A)
  • break
  • case B
  • System.out.println(You got a B)
  • break
  • case C
  • System.out.println(You got a C)
  • break
  • case D
  • System.out.println(You got a D)
  • break
  • case F
  • System.out.println(You got an F)
  • break
  • 13 Repetition Loops
  • Structure
  • Usually some initialization code
  • body of loop
  • loop termination condition
  • Several logical organizations
  • counting loops
  • sentinel-controlled loops
  • infinite loops
  • minimum of zero or minimum of one iteration
  • Several programming statement variations
  • while
  • do-while
  • for
  • 14 while Loop
  • Syntax
  • while(Boolean_Expression)
  • //body of loop
  • First_Statement
  • ...
  • Last_Statement
  • Initialization statements usually precede the loop.
  • Boolean_Expression is the loop termination condition.
  • The loop will continue executing as long as Boolean_Expression is true.
  • May be either counting or sentinel loop
  • Good choice for sentinel loop
  • Something in body of loop should eventually cause Boolean_Expression to be false. 15 Semantics of the while Statement while (Boolean_Expression) Body 16 while A Counting Loop Example
  • A loop to sum 10 numbers entered by user
  • int next
  • //Loop initialization
  • int count 1
  • int total 0
  • while (count lt 10) //Termination condition
  • //Body of loop
  • next SavitchIn.readLineInt()
  • total total next
  • count //Loop termination counter
  • 17 while A Minimum of Zero Iterations
  • Because the first input value read and the test precedes the loop, the body of the while loop body may not execute at all
  • //Initialization
  • int next
  • int total 0
  • next SavitchIn.readLineInt()
  • while(next gt 0) //Termination condition
  • total total next
  • next SavitchIn.readLineInt()
  • If the first number the user enters is negative, the loop body never executes
  • 18 do-while Loop
  • Syntax
  • do
  • //body of loop
  • First_Statement
  • ...
  • Last_Statement
  • while(Boolean_Expression)
  • Initialization code may precede loop body
  • Loop test is after loop body so the body must execute at least once (minimum of at least one iteration)
  • May be either counting or sentinel loop
  • Good choice for sentinel loop
  • Something in body of loop should eventually cause Boolean_Expression to be false. 19 Semantics of the do-while Statement do Body while (Boolean_Expression) 20 do-while Example
  • int count 1
  • int number 5
  • do //Display integers 1 to 5 on one line
  • System.out.print(count " ")
  • count
  • while(count lt number)
  • Output Note that System.out.print() is used and not System.out.println() so the numbers will all be on one line. 1 2 3 4 5 21 for Loop
  • Good choice for counting loop
  • Initialization, loop test, and loop counter change are part of the syntax
  • Syntax
  • for(Initialization Boolean_Expression Update_Action) loop body 22 Semantics of the for Statement for(Initialization Boolean_Expression Update_Action) loop body A for loop can have zero iterations if the Boolean_Expression is initially false! 23 for Example
  • Count down from 3 to 1
  • for(int count 3 count gt 1 count--)
  • System.out.print("T " count)
  • System.out.println(" and counting")
  • System.out.println("Blast off!")
  • T 3 and counting T 2 and counting T 1 and counting Blast off! Output 24 Nested Loops
  • The body of a loop can have any kind of statements, including another loop.
  • Each time the outer loop body is executed, the inner loop body will execute 5 times, making a total of 20 times.
  • body of outer loop for (line 0 line lt 4 line) for (star 0 star lt 5 star) System.out.print('') Sys tem.out.println() body of inner loop Output 25 Some Practical ConsiderationsWhen Using Loops
  • The most common loop errors are unintended infinite loops and off-by-one errors in counting loops.
  • Sooner or later everyone writes an unintentional infinite loop
  • To get out of an unintended infinite loop enter C (control-C)
  • Loops should be tested thoroughly, especially at the boundaries of the loop test, to check for off-by-one and other possible errors.
  • 26 Tracing a Variable in a Loop
  • Tracing a variable print out the variable each time through the loop
  • A common technique is to test loop counters and troubleshoot off-by-one and other loop errors.
  • Some systems provide a built-in tracing system that allows you to trace a variable without having to change your program.
  • If no built-in utility is available, insert temporary output statements to print values.
  • 27 The Type boolean
  • A primitive type
  • Can have expressions, values, constants, and variables just as with any other primitive type
  • Only two values true and false
  • Can use a boolean variable as the condition in an if statement
  • Using a boolean variable as the condition can make an if statement easier to read by avoiding a complicated expression.
  • if (systemsAreOK) System.out.println("Initiate launch sequence.") else System.out.println("Abo rt launching sequence") 28 boolean Variables in Assignments
  • A boolean expression evaluates to one of the two values true or false.
  • The value of a boolean expression can be assigned to a boolean variable
  • int number -5
  • boolean isPositive
  • isPositive (number gt 0)
  • if (isPositive)
  • System.out.println(positive)
  • else
  • System.out.println(negative or zero)
  • There are simpler and easier ways to write this small program, but boolean variables are useful in keeping track of conditions that depend on a number of factors.
  • Parentheses are not necessary here. Parentheses are necessary here. 29 Truth Tables for boolean Operators (and) (or) ! (not) 30 Precedence
  • An example of using precedence rules to see which operators in following expression should be done first
  • score lt min/2 10 score gt 90
  • Division operator has highest precedence of all operators used here so treat it as if it were parenthesized
  • score lt (min/2) 10 score gt 90
  • Subtraction operator has next highest precedence
  • score lt ((min/2) 10) score gt 90
  • The lt and gt operators have equal precedence and are done in left-to-right order
  • (score lt ((min/2) 10)) (score gt 90)
  • The last expression is a fully parenthesized expression that is equivalent to the original. It shows the order in which the operators in the original will be evaluated.
  • 31 Precedence Rules
  • Highest Precedence
  • First the unary operators , -, , --, and !
  • Second the binary arithmetic operators , /,
  • Third the binary arithmetic operators , -
  • Fourth the boolean operators lt, gt, lt, gt
  • Fifth the boolean operators , !
  • Sixth the boolean operator
  • Seventh the boolean operator
  • Eighth the boolean operator
  • Ninth the boolean operator
  • Lowest Precedence
  • 32 Short-Circuit Evaluation
  • Short-circuit evaluationonly evaluating as much of a boolean expression as necessary.
  • Example
  • If assign gt 0 is false, then the complete expression cannot be true because AND is only true if both operands are true.
  • Java will not evaluate the second part of the expression.
  • Short-circuit evaluation prevents a divide-by-zero exception when assign is 0.
  • if ((assign gt 0) ((total/assign) gt 60)) System.out.println(Good work) else System.out.println(Work harder.) 33 No Short-Circuit Evaluation
  • The and operators do not short-circuit
  • This could result in division by zero a run-time error!
  • if ((assign gt 0) ((total/assign) gt 60)) System.out.println(Good work) else System.out.println(Work harder.) 34 No Short-Circuit Evalutation
  • When would you want short-circuit evaluation?
  • Consider the following code
  • Above, if x.evaluate() is false, then y.reassign() is never run.
  • To ensure that y.reassign() will be executed, use
  • (x.evaluate() y.reassign()) (x.evaluate() y.reassign()) 35 SummaryPart 1
  • Java selection statements if, if-else, if-else if, and switch
  • Java repetition (loop) statements while, do-while, and for
  • Loops can be counter or sentinel controlled
  • Any loop can be written any of the three loop statements, but
  • while and do-while are good choices for sentinel loops
  • for is a good choice for counting loops
  • 36 SummaryPart 2
  • Unintended infinite loops can be terminated by entering C (control-C)
  • The most common loop errors are unintended infinite loops and off-by-one errors in counting loops
  • Branching and loops are controlled by boolean expressions
  • boolean expressions are either true or false
  • boolean is a primitive data type in Java
  • exit(n)is a method that terminates a program
  • n 0 is the conventional value for normal termination
  • Recommended
    View more...
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks