Kĩ thuật lập trình - Control statements: part 2
State Machine Diagrams
Commonly called state diagram
Model several states of an object
Show under what circumstances the object changes state
Focus on system behavior
UML representation
State
Rounded rectangle
Initial state
Solid circle
Transitions
Arrows with stick arrowheads
95 trang |
Chia sẻ: huyhoang44 | Lượt xem: 698 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Kĩ thuật lập trình - Control statements: part 2, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
5Control Statements: Part 21Not everything that can be counted counts, and not every thing that counts can be counted.Albert EinsteinWho can control his fate?William ShakespeareThe used key is always bright.Benjamin FranklinIntelligence is the faculty of making artificial objects, especially tools to make tools.Henri BergsonEvery advantage in the past is judged in the light of the final issue.Demosthenes2OBJECTIVESIn this chapter you will learn:The essentials of counter-controlled repetition.To use the for and dowhile repetition statements to execute statements in a program repeatedly.To understand multiple selection using the switch selection statement.To use the break and continue program control statements to alter the flow of control.To use the logical operators to form complex conditional expressions in control statements.35.1 Introduction 5.2 Essentials of Counter-Controlled Repetition 5.3 for Repetition Statement 5.4 Examples Using the for Statement 5.5 dowhile Repetition Statement 5.6 switch Multiple-Selection Statement 5.7 break and continue Statements 5.8 Logical Operators 5.9 Structured Programming Summary 5.10 (Optional) GUI and Graphics Case Study: Drawing Rectangles and Ovals 5.11 (Optional) Software Engineering Case Study: Identifying Objects’ States and Activities5.12 Wrap-Up 45.1 IntroductionContinue structured-programming discussionIntroduce Java’s remaining control structuresfor, dowhile, switch55.2 Essentials of Counter-Controlled RepetitionCounter-controlled repetition requires:Control variable (loop counter)Initial value of the control variableIncrement/decrement of control variable through each loopLoop-continuation condition that tests for the final value of the control variable6OutlineWhileCounter.javaControl-variable name is counterControl-variable initial value is 1Condition tests for counter’s final value Increment for counter7Common Programming Error 5.1Because floating-point values may be approximate, controlling loops with floating-point variables may result in imprecise counter values and inaccurate termination tests.8 Error-Prevention Tip 5.1Control counting loops with integers.9Good Programming Practice 5.1Place blank lines above and below repetition and selection control statements, and indent the statement bodies to enhance readability. 10Software Engineering Observation 5.1“Keep it simple” remains good advice for most of the code you will write.115.3 for Repetition StatementHandles counter-controlled-repetition details12OutlineForCounter.javaLine 10int counter = 1;Line 10 counter = 1; i-- )Vary control variable from 7 to 77 in increments of 7for ( int i = 7; i = 2; i -= 2 )Vary control variable over the sequence: 2, 5, 8, 11, 14, 17, 20for ( int i = 2; i = 0; i -= 11 )26Common Programming Error 5.6Not using the proper relational operator in the loop-continuation condition of a loop that counts downward (e.g., using i = 1 in a loop counting down to 1) is usually a logic error.27OutlineSum.javaLine 11increment number by 2 each iteration 285.4 Examples Using the for Statement (Cont.)Initialization and increment expression can be comma-separated lists of expressionsE.g., lines 11-12 of Fig. 5.5 can be rewritten as for ( int number = 2; number = 65 ) ++seniorFemales;Combined condition is true if and only if both simple conditions are trueCombined condition is false if either or both of the simple conditions are false61Fig. 5.14 | && (conditional AND) operator truth table. 625.8 Logical Operators (Cont.)Conditional OR (||) OperatorConsider the following if statementif ( ( semesterAverage >= 90 ) || ( finalExam >= 90 ) System.out.println( “Student grade is A” );Combined condition is true if either or both of the simple condition are trueCombined condition is false if both of the simple conditions are false63Fig. 5.15 | || (conditional OR) operator truth table. 645.8 Logical Operators (Cont.)Short-Circuit Evaluation of Complex ConditionsParts of an expression containing && or || operators are evaluated only until it is known whether the condition is true or falseE.g., ( gender == FEMALE ) && ( age >= 65 )Stops immediately if gender is not equal to FEMALE65Common Programming Error 5.8In expressions using operator &&, a condition—we will call this the dependent condition—may require another condition to be true for the evaluation of the dependent condition to be meaningful. In this case, the dependent condition should be placed after the other condition, or an error might occur. For example, in the expression ( i != 0 ) && ( 10 / i == 2 ), the second condition must appear after the first condition, or a divide-by-zero error might occur.665.8 Logical Operators (Cont.)Boolean Logical AND (&) OperatorWorks identically to &&Except & always evaluate both operandsBoolean Logical OR (|) Operator Works identidally to ||Except | always evaluate both operands67Error-Prevention Tip 5.4For clarity, avoid expressions with side effects in conditions. The side effects may look clever, but they can make it harder to understand code and can lead to subtle logic errors.685.8 Logical Operators (Cont.)Boolean Logical Exclusive OR (^)One of its operands is true and the other is falseEvaluates to trueBoth operands are true or both are falseEvaluates to falseLogical Negation (!) OperatorUnary operator69Fig. 5.16 | ^ (boolean logical exclusive OR) operator truth table. 70Fig. 5.17 |! (logical negation, or logical NOT) operator truth table. 71OutlineLogicalOperators. java(1 of 3)Lines 9-13Lines 16-20Lines 23-27Conditional AND truth tableConditional OR truth tableBoolean logical AND truth table72OutlineLogicalOperators. java(2 of 3)Lines 30-35Lines 38-43Lines 46-47Boolean logical inclusive OR truth tableBoolean logical exclusive OR truth tableLogical negation truth table73OutlineLogicalOperators. java(3 of 3)Program output74Fig. 5.19 | Precedence/associativity of the operators discussed so far. 755.9 Structured Programming SummarySequence structure“built-in” to JavaSelection structureif, ifelse and switchRepetition structurewhile, dowhile and for76Fig. 5.20 | Java’s single-entry/single-exit sequence, selection and repetition statements. 77Fig. 5.21 | Rules for forming structured programs. 78Fig. 5.22 | Simplest activity diagram. 79Fig. 5.23 | Repeatedly applying the stacking rule (rule 2) of Fig. 5.21 to the simplest activity diagram.80Fig. 5.24 | Repeatedly applying the nesting rule (rule 3) of Fig. 5.21 to the simplest activity diagram.81Fig. 5.25 | “Unstructured” activity diagram. 825.10 (Optional) GUI and Graphics Case Study: Drawing Rectangles and OvalsDraw rectanglesMethod drawRect of GraphicsDraw ovalsMethod drawOval of Graphics83OutlineShapes.java(1 of 2)84OutlineShapes.java(2 of 2)Lines 27-28Lines 31-32Draw rectanglesDraw ovals85OutlineShapesTest.java(1 of 2)86OutlineShapesTest.java(2 of 2)Program output87Fig. 5.28 | Drawing concentric circles. 885.11 (Optional) Software Engineering Case Study: Identifying Object’s State and ActivitiesState Machine DiagramsCommonly called state diagramModel several states of an objectShow under what circumstances the object changes stateFocus on system behaviorUML representationStateRounded rectangleInitial stateSolid circleTransitionsArrows with stick arrowheads89Fig. 5.29 | State diagram for the ATM object. 90Software Engineering Observation 5.5Software designers do not generally create state diagrams showing every possible state and state transition for all attributes—there are simply too many of them. State diagrams typically show only key states and state transitions.915.11 (Optional) Software Engineering Case Study (Cont.)Activity DiagramsFocus on system behaviorModel an object’s workflow during program executionModel the actions the object will perform and in what orderUML representationAction state ( rectangle with its left and right sides replaced by arcs curving outwards)Action order ( arrow with a stick arrowhead)Initial state (solid circle)Final state (solid circle enclosed in an open circle)92Fig. 5.30 | Activity diagram for a BalanceInquiry object. 93Fig. 5.31 | Activity diagram for a withdrawal transaction.94Fig. 5.32 | Activity diagram for a deposit transaction. 95
Các file đính kèm theo tài liệu này:
- javahtp7e_05_7035_0548.ppt