0% found this document useful (0 votes)
3 views88 pages

Js Tut

Uploaded by

sandhyadevit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views88 pages

Js Tut

Uploaded by

sandhyadevit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 88

1

8
JavaScript: Control
Statements II

 2008 Pearson Education, Inc. All rights reserved.


2

Not everything that can be counted counts, and not


every thing that counts can be counted.
—Albert Einstein
Who can control his fate?
—William Shakespeare
The used key is always bright.
—Benjamin Franklin
Intelligence is the faculty of making artificial
objects, especially tools to make tools.
—Henri Bergson
Every advantage in the past is judged in the light of
the final issue.
—Demosthenes
 2008 Pearson Education, Inc. All rights reserved.
3

OBJECTIVES
In this chapter you will learn:
 The essentials of counter-controlled
repetition.
 To use the for and do while repetition
statements to execute statements in a
program repeatedly.
 To perform multiple selection using the
switch selection statement.
 To use the break and continue program-
control statements.
 To use the logical operators.

 2008 Pearson Education, Inc. All rights reserved.


4

8.1 Introduction
8.2 Essentials of Counter-Controlled Repetition
8.3 for Repetition Statement
8.4 Examples Using the for Statement
8.5 switch Multiple-Selection Statement
8.6 do while Repetition Statement
8.7 break and continue Statements
8.8 Labeled break and continue Statements
8.9 Logical Operators
8.10 Summary of Structured Programming
8.11 Wrap-Up
8.12 Web Resources

 2008 Pearson Education, Inc. All rights reserved.


5

8.1 Introduction
• The techniques you will learn here are applicable
to most high-level languages, including
JavaScript.

 2008 Pearson Education, Inc. All rights reserved.


6

8.2 Essentials of Counter-Controlled


Repetition
• Counter-controlled repetition requires
– name of a control variable
– initial value of the control variable
– the increment (or decrement) by which the control variable
is modified each time through the loop
– the condition that tests for the final value of the control
variable to determine whether looping should continue

 2008 Pearson Education, Inc. All rights reserved.


7

8.2 Essentials of Counter-Controlled


Repetition (Cont.)
• The double-quote character delimits the
beginning and end of a string literal in JavaScript
– it cannot be used in a string unless it is preceded by a \ to
create the escape sequence \”

 2008 Pearson Education, Inc. All rights reserved.


8

8.2 Essentials of Counter-Controlled


Repetition (Cont.)
• XHTML allows either single quotes (') or double
quotes (") to be placed around the value specified
for an attribute
• JavaScript allows single quotes to be placed in a
string literal

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 9
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.1 |
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 Counter-
5 <!-- Fig. 8.1: WhileCounter.html --> controlled
6 <!-- Counter-controlled repetition. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
repetition (Part
8 <head> 1 of 2).
9 <title>Counter-Controlled Repetition</title>
10 <script type = "text/javascript">
11 <!--
12 var counter = 1; // initialization
Initializes counter
13
14 while ( counter <= 7 ) // repetition condition
Precedes the “ with a \ to create an
15 {
16 document.writeln( "<p style = \"font-size: " +
escape sequence so that it can be
17 counter + "ex\">XHTML font size " + counter + used in the string
18 "ex</p>" );
19 ++counter; // increment
20 } //end while Condition to be fulfilled with every iteration
21 // -->
22 </script>
23 </head><body></body>
24 </html> Incrementing statement

 2008 Pearson Education,


Inc. All rights reserved.
10

Fig. 8.1 | Counter-controlled repetition (Part 2 of 2).

 2008 Pearson Education, Inc. All rights reserved.


11

Common Programming Error 8.1

Placing a double-quote (") character inside a


string literal that is delimited by double
quotes causes a runtime error when the script
is interpreted. To be displayed as part of a
string literal, a double-quote (") character
must be preceded by a \ to form the escape
sequence \".

 2008 Pearson Education, Inc. All rights reserved.


12

Good Programming Practice 8.1

Use integer values to control loop counting.

 2008 Pearson Education, Inc. All rights reserved.


13

Good Programming Practice 8.2

Indent the statements in the body of each


control structure.

 2008 Pearson Education, Inc. All rights reserved.


14

Good Programming Practice 8.3

Put a blank line before and after each control


structure, to make it stand out in the
program.

 2008 Pearson Education, Inc. All rights reserved.


15

Good Programming Practice 8.4

Too many levels of nesting can make a


program difficult to understand. As a general
rule, try to avoid using more than three levels
of nesting.

 2008 Pearson Education, Inc. All rights reserved.


16

Good Programming Practice 8.5

Vertical spacing above and below control


structures and indentation of the bodies of
control structures in the headers of the control
structure give programs a two-dimensional
appearance that enhances readability.

 2008 Pearson Education, Inc. All rights reserved.


17

8.3 for Repetition Statement


• for statement
– Cpecifies each of the items needed for counter-controlled repetition with a control variable
– Can use a block to put multiple statements into the body
• If the loop’s condition uses a < or > instead of a <= or >=, or vice-
versa, it can result in an off-by-one error
• for statement takes three expressions
– Initialization
– Condition
– Increment Expression
• The increment expression in the for statement acts like a stand-alone
statement at the end of the body of the for statement
• Place only expressions involving the control variable in the
initialization and increment sections of a for statement

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 18
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.2 |
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 Counter-
5 <!-- Fig. 8.2: ForCounter.html --> controlled
6 <!-- Counter-controlled repetition with the for statement. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
repetition with
8 <head> the for
9
10
<title>Counter-Controlled Repetition</title>
<script type = "text/javascript">
statement (Part
Initial value of the control variable
11 <!-- 1 of 2).
12 // Initialization, repetition condition and
Condition to test whether looping
13 // incrementing are all included in the for
should continue
14 // statement header.
15 for ( var counter = 1; counter <= 7; ++counter )
16 document.writeln( "<p style = \"font-size: " +
17 counter + "ex\">XHTML font size " + counter +
18 "ex</p>" );
19 // --> Increment to occur after each iteration
20 </script> of the loop
21 </head><body></body>
22 </html>
Statement inside the for loop

 2008 Pearson Education,


Inc. All rights reserved.
19

Fig. 8.2 | Counter-controlled repetition with the for statement (Part 2 of 2).

 2008 Pearson Education, Inc. All rights reserved.


20

8.3 for Repetition Statement (Cont.)


• The three expressions in the for statement are
optional
• The two semicolons in the for statement are
required
• The initialization, loop-continuation condition
and increment portions of a for statement can
contain arithmetic expressions

 2008 Pearson Education, Inc. All rights reserved.


21

8.3 for Repetition Statement (Cont.)


• The part of a script in which a variable name can
be used is known as the variable’s scope
• The “increment” of a for statement may be
negative, in which case it is called a decrement
and the loop actually counts downward
• If the loop-continuation condition initially is
false, the body of the for statement is not
performed
– Execution proceeds with the statement following the for
statement

 2008 Pearson Education, Inc. All rights reserved.


22

Common Programming Error 8.2

Using an incorrect relational operator or an


incorrect final value of a loop counter in the
condition of a while, for or do while
statement can cause an off-by-one error or an
infinite loop.

 2008 Pearson Education, Inc. All rights reserved.


23

Good Programming Practice 8.6


Using the final value in the condition of a while or
for statement and using the <= relational operator
will help avoid off-by-one errors. For a loop used to
print the values 1 to 10, for example, the initial value
of counter should be 1, and the loop-continuation
condition should be counter <= 10 rather than
counter < 10 (which is an off-by-one error) or
counter < 11 (which is correct). Many programmers,
however, prefer so-called zero-based counting, in
which, to count 10 times through the loop, counter
would be initialized to zero and the loop-continuation
test would be counter < 10 .

 2008 Pearson Education, Inc. All rights reserved.


24

Fig. 8.3 | for statement header components.

 2008 Pearson Education, Inc. All rights reserved.


25

Good Programming Practice 8.7


Place only expressions involving the control
variable in the initialization and increment
sections of a for statement. Manipulations of
other variables should appear either before
the loop (if they execute only once, like
initialization statements) or in the loop body
(if they execute once per iteration of the loop,
like incrementing or decrementing
statements).

 2008 Pearson Education, Inc. All rights reserved.


26

Common Programming Error 8.3

Using commas instead of the two required


semicolons in the header of a for statement is
a syntax error.

 2008 Pearson Education, Inc. All rights reserved.


27

Common Programming Error 8.4

Placing a semicolon immediately to the right


of the right parenthesis of the header of a for
statement makes the body of that for
statement an empty statement. This code is
normally a logic error.

 2008 Pearson Education, Inc. All rights reserved.


28

Error-Prevention Tip 8.1

Although the value of the control variable can


be changed in the body of a for statement,
avoid changing it, because doing so can lead to
subtle errors.

 2008 Pearson Education, Inc. All rights reserved.


29

Fig. 8.4 | for repetition statement flowchart.

 2008 Pearson Education, Inc. All rights reserved.


30

8.4 Examples Using the for Statement

• JavaScript does not include an exponentiation


operator
– Math object’s pow method for this purpose.
Math.pow(x, y) calculates the value of x raised to the
yth power.
• Floating-point numbers can cause trouble as a
result of rounding errors

 2008 Pearson Education, Inc. All rights reserved.


31

Common Programming Error 8.5

Not using the proper relational operator in the


loop-continuation condition of a loop that
counts downward (e.g., using i <= 1 in a loop
that counts down to 1) is usually a logic error
that will yield incorrect results when the
program runs.

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 32
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.5 |
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 Control variable number begins at the Summation with
5 <!-- Fig. 8.5: Sum.html --> value of 2 the for
6 <!-- Summation with the for repetition structure. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
repetition
8 <head> We execute the loop while numberstructure.
is
9 less than
<title>Sum the Even Integers from 2 to 100</title> or equal to 100
10 <script type = "text/javascript">
11 <!--
After each loop iteration is complete,
12 var sum = 0;
13
increment number by 2
14 for ( var number = 2; number <= 100; number += 2 )
15 sum += number;
16
17 document.writeln( "The sum of the even integers " +
18 "from 2 to 100 is " + sum );
19 // -->
20 </script>
21 </head><body></body>
22 </html>

 2008 Pearson Education,


Inc. All rights reserved.
33

Good Programming Practice 8.8

Although statements preceding a for


statement and in the body of a for statement
can often be merged into the for header,
avoid doing so, because it makes the program
more difficult to read.

 2008 Pearson Education, Inc. All rights reserved.


34

Good Programming Practice 8.9

For clarity, limit the size of control-statement


headers to a single line, if possible.

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 35
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.6 |
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 Compound
5 <!-- Fig. 8.6: Interest.html --> interest
6 <!-- Compound interest calculation with a for loop. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
calculation with
8 <head> a for loop (Part
9 <title>Calculating Compound Interest</title>
1 of 2).
10 <style type = "text/css">
11 table { width: 100% }
12 th { text-align: left }
13 </style>
14 <script type = "text/javascript">
15 <!--
16 var amount; // current amount of money
17 var principal = 1000.0; // principal amount
18 var rate = .05; // interest rate
19
20 document.writeln(
21 "<table border = \"1\">" ); // begin the table
22 document.writeln(
23 "<caption>Calculating Compound Interest</caption>" );
24 document.writeln(
25 "<thead><tr><th>Year</th>" ); // year column heading
26 document.writeln(
27 "<th>Amount on deposit</th>" ); // amount column heading
28 document.writeln( "</tr></thead><tbody>" );
29
 2008 Pearson Education,
Inc. All rights reserved.
30 // output a table row for each year 36
31 for ( var year = 1; year <= 10; ++year )
Fig. 8.6 |
32 {
33 amount = principal * Math.pow( 1.0 + rate, year ); Compound
34 document.writeln( "<tr><td>" + year + interest
35 "</td><td>" + amount.toFixed(2) + Control variable year begins with a
36 "</td></tr>" ); value of 1
calculation with
37 } //end for a for loop (Part
38
39 document.writeln( "</tbody></table>" );
2 of 2).
Continue to execute the loop while
40 // --> year is less than or equal to 10
41 </script>
42 </head><body></body> After each loop iteration, increase the
43 </html> value of year by 1

 2008 Pearson Education,


Inc. All rights reserved.
37

8.5 switch Multiple-Selection Statement

• switch multiple-selection statement


– Tests a variable or expression separately for each of the values it may
assume
– Different actions are taken for each value
• CSS property list-style-type
– Allows you to set the numbering system for a list
– Possible values include
• decimal (numbers—the default)
• lower-roman (lowercase roman numerals)
• upper-roman (uppercase roman numerals)
• lower-alpha (lowercase letters)
• upper-alpha (uppercase letters)
• others

 2008 Pearson Education, Inc. All rights reserved.


38

8.5 switch Multiple-Selection Statement


(Cont.)
• switch statement
– Consists of a series of case labels and an optional default case
– When control reaches a switch statement
• The script evaluates the controlling expression in the parentheses
• Compares this value with the value in each of the case labels
• If the comparison evaluates to true, the statements after the case label are
executed in order until a break statement is reached
• The break statement is used as the last statement in each
case to exit the switch statement immediately
• The default case allows you to specify a set of
statements to execute if no other case is satisfied
– Usually the last case in the switch statement

 2008 Pearson Education, Inc. All rights reserved.


39

8.5 switch Multiple-Selection Statement


(Cont.)
• Each case can have multiple actions (statements)
• Braces are not required around multiple actions in a case
of a switch
• The break statement is not required for the last case
because program control automatically continues with the
next statement after the switch
• Having several case labels listed together (e.g., case 1:
case 2: with no statements between the cases) executes
the same set of actions for each case

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 40
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.7 | Using
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 the switch
5 <!-- Fig. 8.7: SwitchTest.html --> multiple-
6 <!-- Using the switch multiple-selection statement. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
selection
8 <head> statement (Part
9
10
<title>Switching between XHTML List Formats</title>
<script type = "text/javascript">
1 of 4).
11 <!--
12 var choice; // user’s choice
13 var startTag; // starting list item tag
14 var endTag; // ending list item tag
15 var validInput = true; // indicates if input is valid
16 var listType; // type of list as a string
17
18 choice = window.prompt( "Select a list style:\n" +
Beginning of switch statement
19 "1 (numbered), 2 (lettered), 3 (roman)", "1" );
20
21 switch ( choice ) Beginning of statements to be
22 { Statements
executed if choice equals “1”
23 case "1":
24 startTag = "<ol>"; Break out of switch statement
25 endTag = "</ol>";
26 listType = "<h1>Numbered List</h1>";
Beginning of statements to be
27 break;
28 case "2":
executed if choice equals “2”
29 startTag = "<ol style = \"list-style-type:
Statements
upper-alpha\">";
30 endTag = "</ol>"; Break out of switch statement
 2008 Pearson Education,
31 listType = "<h1>Lettered List</h1>";
Inc. All rights reserved.
32 break;
33 case "3": 41
34 startTag = "<ol style = \"list-style-type: upper-roman\">";
Beginning of statements to be Fig. 8.7 | Using
35 endTag = "</ol>";
36 listType = "<h1>Roman Numbered
executed if choice equals “3”
List</h1>"; Statements the switch
37 break; multiple-
Break out of switch statement
38 default:
39 validInput = false;
selection
Beginning of statements to be
40 } //end switch
executed if choice is anything
statement (Part
other
Statement
41
42 if ( validInput == true ) than “1”, “2” or “3” 2 of 4).
43 {
44 document.writeln( listType + startTag );
45 No break is necessary, since we’ve come
46 for ( var i = 1; i <= 3; ++i ) to the end of the switch anyway
47 document.writeln( "<li>List item " + i + "</li>" );
48
49 document.writeln( endTag );
50 } //end if
51 else
52 document.writeln( "Invalid choice: " + choice );
53 // -->
54 </script>
55 </head>
56 <body>
57 <p>Click Refresh (or Reload) to run the script again</p>
58 </body>
59 </html>

 2008 Pearson Education,


Inc. All rights reserved.
42

Fig. 8.7 | Using the switch multiple-selection


statement (Part 3 of 4).

 2008 Pearson Education, Inc. All rights reserved.


43

Fig. 8.7 | Using the switch


multiple-selection statement
(Part 4 of 4).

 2008 Pearson Education, Inc. All rights reserved.


44

Common Programming Error 8.6

Forgetting a break statement when one is


needed in a switch statement is a logic error.

 2008 Pearson Education, Inc. All rights reserved.


45

Software Engineering Observation 8.1

Provide a default case in switch statements.


Cases not explicitly tested in a switch
statement without a default case are ignored.
Including a default case focuses the
programmer on processing exceptional
conditions. However, there are situations in
which no default processing is needed.

 2008 Pearson Education, Inc. All rights reserved.


46

Good Programming Practice 8.10

Although the case clauses and the default


case clause in a switch statement can occur in
any order, it is clearer (and more common) to
place the default clause last.

 2008 Pearson Education, Inc. All rights reserved.


47
If the controllingExecute
expression is equalUntil
the following a break (or the end of the
statements…
to the case label… switch) is reached

If none of the
case labels
are matched,
execute the
default
actions

Fig. 8.8 | switch multiple-selection statement.

 2008 Pearson Education, Inc. All rights reserved.


48

Good Programming Practice 8.11

In a switch statement, when the default


clause is listed last, the break for that case
statement is not required. Some programmers
include this break for clarity and for
symmetry with other cases.

 2008 Pearson Education, Inc. All rights reserved.


49

8.6 do…while Repetition Statement

• do…while statement
– tests the loop-continuation condition after the loop body
executes
– The loop body always executes at least once

 2008 Pearson Education, Inc. All rights reserved.


50

Good Programming Practice 8.12

Some programmers always include braces in a


do while statement even if they are not
necessary. This helps eliminate ambiguity
between the while statement and the do
while statement containing a one-statement
body.

 2008 Pearson Education, Inc. All rights reserved.


51

Common Programming Error 8.7


Infinite loops are caused when the loop-
continuation condition never becomes false
in a while , for or do while statement. To
prevent this, make sure that there is not a
semicolon immediately after the header of a
while or for statement. In a counter-
controlled loop, make sure that the control
variable is incremented (or decremented) in
the body of the loop. In a sentinel-controlled
loop, make sure that the sentinel value is
eventually input.

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 52
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.9 | Using
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 the do while
5 <!-- Fig. 8.9: DoWhileTest.html --> repetition
6 <!-- Using the do...while repetition statement. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
statement (Part
8 <head> 1 of 2).
9 <title>Using the do...while Repetition Statement</title>
10 <script type = "text/javascript">
11 <!--
12 var counter = 1;
13
Perform the following actions…
14 do {
15 document.writeln( "<h" + counter + ">This is " +
16 "an h" + counter + " level head" + "</h" +
17 counter + ">" );
18 ++counter;
19 } while ( counter <= 6 ); Then check to see if counter <=
20 // --> 6. If it is, iterate through the loop
21 </script> again.
22
23 </head><body></body>
24 </html>

 2008 Pearson Education,


Inc. All rights reserved.
53

Fig. 8.9 | Using the do while repetition statement (Part 2 of 2).

 2008 Pearson Education, Inc. All rights reserved.


54

Perform an action first…


If it is true, repeat the
action

Then check to see if the condition is


true
Otherwise, exit the loop

Fig. 8.10 | do while repetition statement flowchart.

 2008 Pearson Education, Inc. All rights reserved.


55

8.7 break and continue Statements

• break statement in a while, for, do…while or


switch statement
– Causes immediate exit from the statement
– Execution continues with the next statement in sequence
• break statement common uses
– Escape early from a loop
– Skip the remainder of a switch statement

 2008 Pearson Education, Inc. All rights reserved.


56

8.7 break and continue Statements


(Cont.)
• continue statement in a while, for or do…
while
– skips the remaining statements in the body of the statement
and proceeds with the next iteration of the loop
– In while and do…while statements, the loop-
continuation test evaluates immediately after the continue
statement executes
– In for statements, the increment expression executes, then
the loop-continuation test evaluates

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 57
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.11 | Using
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 the break
5 <!-- Fig. 8.11: BreakTest.html --> statement in a
6 <!-- Using the break statement in a for statement. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
for statement
8 <head> (Part 1 of 2).
9 <title>
10 Using the break Statement in a for Statement
11 </title>
12 <script type = "text/javascript">
13 <!-- Exits the for loop immediately
14 for ( var count = 1; count <= 10; ++count ) if count == 5
15 {
16 if ( count == 5 )
17 break; // break loop only if count == 5
18
19 document.writeln( "Count is: " + count + "<br />" );
20 } //end for
21
22 document.writeln(
23 "Broke out of loop at count = " + count );
24 // -->
25 </script>
26 </head><body></body>
27 </html>

 2008 Pearson Education,


Inc. All rights reserved.
58

Fig. 8.11 | Using the break statement in a for statement (Part 2 of 2).

 2008 Pearson Education, Inc. All rights reserved.


59

Software Engineering Observation 8.2

Some programmers feel that break and


continue violate structured programming.
They do not use break and continue ,
because the effects of these statements can be
achieved by structured programming
techniques.

 2008 Pearson Education, Inc. All rights reserved.


60

Performance Tip 8.1

The break and continue statements, when


used properly, perform faster than the
corresponding structured techniques.

 2008 Pearson Education, Inc. All rights reserved.


61

Software Engineering Observation 8.3


There is a tension between achieving quality
software engineering and achieving the best-
performing software. Often, one of these goals
is achieved at the expense of the other. For all
but the most performance-intensive situations,
the following rule of thumb should be
followed: First make your code simple,
readable and correct; then make it fast and
small, but only if necessary.

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 62
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.12 |
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 Using the
5 <!-- Fig. 8.12: ContinueTest.html --> continue
6 <!-- Using the continue statement in a for statement. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
statement in a
8 <head> for statement
9 <title>
(Part 1 of 2).
10 Using the continue Statement in a for Statement
11 </title>
12
13 <script type = "text/javascript">
If count == 5, skips the rest of the
14 <!-- statements in the loop, increments
15 for ( var count = 1; count <= 10; ++count ) count, and performs the loop-
16 { continuation test
17 if ( count == 5 )
18 continue; // skip remaining loop code only if count == 5
19
20 document.writeln( "Count is: " + count + "<br />" );
21 } //end for
22
23 document.writeln( "Used continue to skip printing 5" );
24 // -->
25 </script>
26
27 </head><body></body>
28 </html>

 2008 Pearson Education,


Inc. All rights reserved.
63

Fig. 8.12 | Using the continue statement in a for statement (Part 2 of 2).

 2008 Pearson Education, Inc. All rights reserved.


64

8.8 Labeled break and continue


Statements
• To break out of a nested control statement
– Use the labeled break statement
– When executed in a while, for, do…while or switch statement,
causes immediate exit from that statement and any number of enclosing
repetition statements
– Program execution resumes with the first statement after the specified
labeled statement (a statement preceded by a label)
• A labeled statement can be a block (a set of statements
enclosed in curly braces, {})
• Commonly are used to terminate nested looping
structures containing while, for, do…while or
switch statements

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 65
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.13 |
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 Labeled break
5 <!-- Fig. 8.13: BreakLabelTest.html --> statement in a
6 <!-- Labeled break statement in a nested for statement. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
nested for
8 <head> Statement label statement (Part
9
10
<title>Using the break Statement with a Label</title>
<script type = "text/javascript">
1 of 2).
11 <!-- Beginning of labeled statement
12 stop: { // labeled block
13 for ( var row = 1; row <= 10; ++row )
14 {
15 for ( var column = 1; column <= 5 ; ++column ) If row == 5, immediately go to
16 {
the end of the stop block
17 if ( row == 5 )
18 break stop; // jump to end of stop block
19
20 document.write( "* " );
21 } //end for
22
23 document.writeln( "<br />" );
24 } //end for
25
26 // the following line is skipped
27 document.writeln( "This line should not print" );
28 } // end block labeled stop
29
End of labeled statement

 2008 Pearson Education,


Inc. All rights reserved.
30 document.writeln( "End of script" ); 66
31 // -->
Fig. 8.13 |
32 </script>
33 </head><body></body> Labeled break
34 </html> statement in a
nested for
statement (Part
2 of 2).

 2008 Pearson Education,


Inc. All rights reserved.
67

8.8 Labeled break and continue


Statements (Cont.)
• Labeled continue statement
– When executed in a repetition statement (while, for or do…while),
skips the remaining statements in the structure’s body and any number
of enclosing repetition statements
– Proceeds with the next iteration of the specified labeled repetition
statement (a repetition statement preceded by a label)
– In labeled while and do…while statements, the loop-continuation test
evaluates immediately after the continue statement executes
– In a labeled for statement, the increment expression executes, then the
loop-continuation test evaluates

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 68
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.14 |
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 Labeled
5 <!-- Fig. 8.14: ContinueLabelTest.html --> continue
6 <!-- Labeled continue statement in a nested for statement. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
statement in a
8 <head> nested for
9
10
<title>Using the continue Statement with a Label</title>
<script type = "text/javascript">
statement (Part
11 <!--
Statement label 1 of 2).
12 nextRow: // target label of continue statement
Beginning of labeled statement
13 for ( var row = 1; row <= 5; ++row )
14 {
If column > row, skip all
15 document.writeln( "<br />" );
16
remaining statements in the nextRow
17 for ( var column = 1; column <= 10; ++column ) block, perform the increment
18 { expression, then evaluate the loop-
19 if ( column > row ) continuation test
20 continue nextRow; // next iteration of labeled loop
21
22 document.write( "* " );
23 } //end for
24 } //end for
25 // -->
26 </script> End of labeled statement
27 </head><body></body>
28 </html>

 2008 Pearson Education,


Inc. All rights reserved.
69

Fig. 8.14 | Labeled continue statement in a nested for statement (Part 2 of 2).

 2008 Pearson Education, Inc. All rights reserved.


70

8.9 Logical Operators


• Logical operators can be used to form complex conditions
by combining simple conditions
– && (logical AND)
– || (logical OR)
– ! (logical NOT, also called logical negation)
• The && operator is used to ensure that two conditions are
both true before choosing a certain path of execution
• JavaScript evaluates to false or true all expressions
that include relational operators, equality operators
and/or logical operators

 2008 Pearson Education, Inc. All rights reserved.


71
Fig. 8.15 | Truth
table for the &&
(logical AND)
operator

expression1 expression2 expression1 && expression2

false false false


false true false
true false false
true true true

 2008 Pearson Education,


Inc. All rights reserved.
72

8.9 Logical Operators (Cont.)


• The || (logical OR) operator is used to ensure
that either or both of two conditions are true
before choosing choose a certain path of execution

 2008 Pearson Education, Inc. All rights reserved.


73
Fig. 8.16 | Truth
table for the ||
(logical OR)
operator.

expression1 expression2 expression1 || expression2

false false false


false true true
true false true
true true true

 2008 Pearson Education,


Inc. All rights reserved.
74

8.9 Logical Operators (Cont.)


• The && operator has a higher precedence than the
|| operator
• Both operators associate from left to right.
• An expression containing && or || operators is
evaluated only until truth or falsity is known
– This is called short-circuit evaluation

 2008 Pearson Education, Inc. All rights reserved.


75

8.9 Logical Operators (Cont.)


• ! (logical negation) operator
– reverses the meaning of a condition (i.e., a true value becomes false, and
a false value becomes true)
– Has only a single condition as an operand (i.e., it is a unary operator)
– Placed before a condition to evaluate to true if the original condition
(without the logical negation operator) is false

 2008 Pearson Education, Inc. All rights reserved.


76
Fig. 8.17 | Truth
table for
operator !
(logical
negation).

expression !expression

false true
true false

 2008 Pearson Education,


Inc. All rights reserved.
77

8.9 Logical Operators (Cont.)


• Most nonboolean values can be converted to a boolean
true or false value
• Nonzero numeric values are considered to be true
• The numeric value zero is considered to be false
• Any string that contains characters is considered to be
true
• The empty string is considered to be false
• The value null and variables that have been declared
but not initialized are considered to be false
• All objects are considered to be true

 2008 Pearson Education, Inc. All rights reserved.


1 <?xml version = "1.0" encoding = "utf-8"?> 78
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Fig. 8.18 |
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 Demonstrating
5 <!-- Fig. 8.18: LogicalOperators.html --> logical operators
6 <!-- Demonstrating logical operators. -->
7 <html xmlns = "http://www.w3.org/1999/xhtml">
(Part 1 of 2).
8 <head>
9 <title>Demonstrating the Logical Operators</title>
10 <style type = "text/css">
11 table { width: 100% }
12 td.left { width: 25% }
13 </style>
14 <script type = "text/javascript">
15 <!--
16 document.writeln(
17 "<table border = \"1\"" );
18 document.writeln(
19 "<caption>Demonstrating Logical " +
20 "Operators</caption>" );
21 document.writeln(
Generates a truth table for the logical
22 "<tr><td class = \"left\">Logical AND (&&)</td>" +
23 "<td>false && false: " + ( false && false ) +
AND operator
24 "<br />false && true: " + ( false && true ) +
25 "<br />true && false: " + ( true && false ) +
26 "<br />true && true: " + ( true && true ) +
27 "</td></tr>" );

 2008 Pearson Education,


Inc. All rights reserved.
28 document.writeln( 79
29 "<tr><td class = \"left\">Logical OR (||)</td>" +
Fig. 8.18 |
30 "<td>false || false: " + ( false || false ) +
31 "<br />false || true: " + ( false || true ) + Demonstrating
32 "<br />true || false: " + ( true || false ) + logical operators
33 "<br />true || true: " + ( true || true ) +
34 "</td></tr>" );
(Part 2 of 2).
35 document.writeln( Generates a truth table for the logical
36 "<tr><td class = \"left\">Logical NOT (!)</td>" + OR operator
37 "<td>!false: " + ( !false ) +
38 "<br />!true: " + ( !true ) + "</td></tr>" );
39 document.writeln( "</table>" );
Generates a truth table for the logical
40 // -->
NOT operator
41 </script>
42 </head><body></body>
43 </html>

 2008 Pearson Education,


Inc. All rights reserved.
80

Fig. 8.19 | Precedence and


associativity of the operators
discussed so far.

Operator Associativity Type


++ -- ! right to left unary
* / % left to right multiplicative
+ - left to right additive
< <= > >= left to right relational
== != left to right equality
&& left to right logical AND
|| left to right logical OR
?: right to left conditional

 2008 Pearson Education,


Inc. All rights reserved.
81

8.10 Summary of Structured


Programming
• The following charts review some of the key
topics of structured programming.

 2008 Pearson Education, Inc. All rights reserved.


82

Fig. 8.20 | Single-entry/single-exit sequence, selection and repetition structures.

 2008 Pearson Education, Inc. All rights reserved.


83

Fig. 8.21 | Forming rules for


structured programs.

Rules for forming structured programs


1. Begin with the “simplest flowchart” (Fig. 8.22).
2. Any rectangle (action) can be replaced by two rectangles (actions) in sequence.
3. Any rectangle (action) can be replaced by any control structure (sequence, if, if
else, switch, while, do while or for).
4. Rules 2 and 3 may be applied as often as necessary and in any order.

 2008 Pearson Education,


Inc. All rights reserved.
84

Begin with this “simplest flowchart”

Fig. 8.22 | Simplest flowchart.

 2008 Pearson Education, Inc. All rights reserved.


85

Any rectangle (action) can be


replaced by two rectangles (actions)
in sequence

Fig. 8.23 | Repeatedly applying Rule 2 of Fig. 8.21 to the simplest flowchart.

 2008 Pearson Education, Inc. All rights reserved.


86

Any rectangle (action) can be


replaced by any control structure

Fig. 8.24 | Applying Rule 3 of Fig. 8.21 to the simplest flowchart.

 2008 Pearson Education, Inc. All rights reserved.


87

These operations for building blocks This operations for building


are legal blocks is illegal

Fig. 8.25 | Stacked, nested and overlapped building blocks.

 2008 Pearson Education, Inc. All rights reserved.


88

If the rules are followed, this unstructured


flowchart cannot be created

Fig. 8.26 | Unstructured flowchart.

 2008 Pearson Education, Inc. All rights reserved.

You might also like