23.04.2013 Views

javascript

javascript

javascript

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 4 ■ CONTROLLING FLOW<br />

name = "Miller";<br />

break;<br />

case 86:<br />

name = "Ward";<br />

break;<br />

case 92:<br />

case 97:<br />

name = "Harrison";<br />

break;<br />

case 94:<br />

name = "Timmons";<br />

break;<br />

case 96:<br />

name = "Hood";<br />

break;<br />

default:<br />

name = "not worn by any Steeler";<br />

break;<br />

}<br />

"Number " + jersey + " is " + name + ".";<br />

// "Number 7 is Miller."<br />

Here, JavaScript begins running the switch block with the statement name = "Roethlisberger"; and<br />

stops when it encounters the break statement after the statement name = "Miller";, so for a jersey<br />

number of 7, JavaScript incorrectly returns "Miller". Put another way, JavaScript just ran a path like the<br />

one for the following ridiculous if condition, which overwrites name six times in a row!<br />

if (jersey === 7) {<br />

name = "Roethlisberger";<br />

name = "Holmes";<br />

name = "Wallace";<br />

name = "Mendenhall";<br />

name = "Polamalu";<br />

name = "Miller";<br />

}<br />

Now put the break statements back in, change jersey to 96, and delete the break after the case clause<br />

for 96. Click Run to see what happens:<br />

var jersey = 96, name = "";<br />

switch (jersey) {<br />

case 7:<br />

name = "Roethlisberger";<br />

break;<br />

case 10:<br />

name = "Holmes";<br />

break;<br />

case 17:<br />

name = "Wallace";<br />

break;<br />

case 34:<br />

name = "Mendenhall";<br />

break;<br />

case 43:<br />

name = "Polamalu";<br />

113

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!