Introduction to Control Statements Java Script Part 3

  • Slides: 39
Download presentation
Introduction to Control Statements Java. Script – Part 3 George Mason University June 3,

Introduction to Control Statements Java. Script – Part 3 George Mason University June 3, 2010

Selection Statements if Statements switch Statements Conditional Operators

Selection Statements if Statements switch Statements Conditional Operators

Simple if Statements if (boolean. Expression) { statement(s); } if (radius >= 0) {

Simple if Statements if (boolean. Expression) { statement(s); } if (radius >= 0) { area = radius * PI; document. write("The area" + " for the circle of radius " + radius + " is " + area); }

Note

Note

Caution Common Logic Error if (radius >= 0); Wrong { area = radius*PI; document.

Caution Common Logic Error if (radius >= 0); Wrong { area = radius*PI; document. write( "The area for the circle of radius " + radius + " is " + area); }

The if. . . else Statement if (boolean. Expression) { statement(s)-for-the-true-case; } else {

The if. . . else Statement if (boolean. Expression) { statement(s)-for-the-true-case; } else { statement(s)-for-the-false-case; }

if. . . else Example if (radius >= 0) { area = radius *

if. . . else Example if (radius >= 0) { area = radius * 3. 14159; document. write(“The area for the “ + “circle of radius “ + radius + “ is “ + area); } else { document. write(“Negative input”); }

Multiple Alternative if Statements

Multiple Alternative if Statements

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade = "A"; else if (score >= 80. 0) grade = "B"; else if (score >= 70. 0) grade = "C"; else if (score >= 60. 0) grade = "D"; else grade = "F"; The condition is false

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade = "A"; else if (score >= 80. 0) grade = "B"; else if (score >= 70. 0) grade = "C"; else if (score >= 60. 0) grade = "D"; else grade = "F"; The condition is false

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade = "A"; else if (score >= 80. 0) grade = "B"; else if (score >= 70. 0) grade = "C"; else if (score >= 60. 0) grade = "D"; else grade = "F"; The condition is true

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade = "A"; else if (score >= 80. 0) grade = "B"; else if (score >= 70. 0) grade = "C"; else if (score >= 60. 0) grade = "D"; else grade = "F"; grade is C

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade

Trace if-else statement Suppose score is 70. 0 if (score >= 90. 0) grade = "A"; else if (score >= 80. 0) grade = "B"; else if (score >= 70. 0) grade = "C"; else if (score >= 60. 0) grade = "D"; else grade = "F"; Exit the if statement

Note The else clause matches the most recent if clause in the same block.

Note The else clause matches the most recent if clause in the same block.

Note, cont. Nothing is printed from the preceding statement. To force the else clause

Note, cont. Nothing is printed from the preceding statement. To force the else clause to match the first if clause, you must add a pair of braces: i = 1; j = 2; k = 3; if (i > j) { if (i > k) document. write("A"); } else document. write("B"); This statement prints B.

TIP

TIP

Note

Note

Example 3. 1 Computing Taxes The US federal personal income tax is calculated based

Example 3. 1 Computing Taxes The US federal personal income tax is calculated based on the filing status and taxable income. There are four filing statuses: single filers, married filing jointly, married filing separately, and head of household. The tax rates for 2002 are shown in Table 3. 1.

Example 3. 1 Computing Taxes, cont. if (status == 0) { // Compute tax

Example 3. 1 Computing Taxes, cont. if (status == 0) { // Compute tax for single filers } else if (status == 1) { // Compute tax for married file jointly } else if (status == 2) { // Compute tax for married file separately } else if (status == 3) { // Compute tax for head of household } else { // Display wrong status }

switch Statement Flow Chart

switch Statement Flow Chart

switch Statements switch (status) { case 0: compute taxes for single filers; break; case

switch Statements switch (status) { case 0: compute taxes for single filers; break; case 1: compute taxes for married file jointly; break; case 2: compute taxes for married file separately; break; case 3: compute taxes for head of household; break; default: document. write("Errors: invalid status"); }

switch Statement Rules The switch-expression must always be enclosed in parentheses. switch (switch-expression) {

switch Statement Rules The switch-expression must always be enclosed in parentheses. switch (switch-expression) { case value 1: statement(s)1; break; case value 2: statement(s)2; break; … case value. N: statement(s)N; break; default: statement(s)-for-default; }

switch Statement Rules The keyword break is optional, but it should be used at

switch Statement Rules The keyword break is optional, but it should be used at the end of each case in order to terminate the remainder of the switch statement. If the break statement is not present, the next case statement will be executed. The default case, which is optional, can be used to perform actions when none of the specified cases matches the switchexpression. switch (switch-expression) { case value 1: statement(s)1; break; case value 2: statement(s)2; break; … case value. N: statement(s)N; break; default: statement(s)-for-default; } The case statements are executed in sequential order, but the order of the cases (including the default case) does not matter. However, it is good programming style to follow the logical sequence of the cases and place the default case at the end.

Trace switch statement Suppose ch is "a": switch case } (ch) "a": "b": "c":

Trace switch statement Suppose ch is "a": switch case } (ch) "a": "b": "c": { document. write(ch);

Trace switch statement ch is "a": switch case } (ch) 'a': "b": "c": {

Trace switch statement ch is "a": switch case } (ch) 'a': "b": "c": { document. write(ch);

Trace switch statement Execute this line switch case } (ch) "a": "b": "c": {

Trace switch statement Execute this line switch case } (ch) "a": "b": "c": { document. write(ch);

Trace switch statement Execute this line switch case } (ch) "a": "b": "c": {

Trace switch statement Execute this line switch case } (ch) "a": "b": "c": { document. write(ch);

Trace switch statement Execute this line switch case } (ch) "a": "b": "c": {

Trace switch statement Execute this line switch case } (ch) "a": "b": "c": { document. write(ch);

Trace switch statement Execute next statement switch case } (ch) "a": "b": "c": Next

Trace switch statement Execute next statement switch case } (ch) "a": "b": "c": Next statement; { document. write(ch);

Trace switch statement Suppose ch is "a": switch (ch) { case "a": document. write(ch);

Trace switch statement Suppose ch is "a": switch (ch) { case "a": document. write(ch); break; case "b": document. write(ch); break; case "c": document. write(ch); }

Trace switch statement ch is 'a': switch (ch) { case 'a': document. write(ch); break;

Trace switch statement ch is 'a': switch (ch) { case 'a': document. write(ch); break; case "b": document. write(ch); break; case "c": document. write(ch); }

Trace switch statement Execute this line switch (ch) { case "a": document. write(ch); break;

Trace switch statement Execute this line switch (ch) { case "a": document. write(ch); break; case "b": document. write(ch); break; case "c": document. write(ch); }

Trace switch statement Execute this line switch (ch) { case "a": document. write(ch); break;

Trace switch statement Execute this line switch (ch) { case "a": document. write(ch); break; case "b": document. write(ch); break; case "c": document. write(ch); }

Trace switch statement Execute next statement switch (ch) { case 'a': docuent. write(ch); break;

Trace switch statement Execute next statement switch (ch) { case 'a': docuent. write(ch); break; case 'b': document. write(ch); break; case 'c': document. write(ch); } Next statement;

Example using Else If structure exam 1 = parse. Float(prompt("Enter exam 1 grade (0

Example using Else If structure exam 1 = parse. Float(prompt("Enter exam 1 grade (0 -100)")); // convert input to number exam 2 = parse. Float(prompt("Enter exam 2 grade (0 -100)")); // convert input to number average = (exam 1 + exam 2) /2; // need to have converted to number, otherwise string concatenation // here if (average > 90) letter. Grade = "A"; else if (average > 80) letter. Grade = "B"; else if (average >70) letter. Grade = "C"; else if (average >60) letter. Grade = "D"; else letter. Grade ="F"; } } document. write("Average: " + average + "Grade: " + letter. Grade); -------------------------------------------------------------- Switch statement only tests for equality and thus one would have to do calculations to use a switch statement for the above problem

Conditional Operator if (x > 0) y=1 else y = -1; is equivalent to

Conditional Operator if (x > 0) y=1 else y = -1; is equivalent to y = (x > 0) ? 1 : -1; (boolean. Expression) ? expression 1 : expression 2 Ternary operator Binary operator Unary operator

Conditional Operator if (num % 2 == 0) document. write(num + “ is even”);

Conditional Operator if (num % 2 == 0) document. write(num + “ is even”); else document. write(num + “ is odd”); document. write( (num % 2 == 0)? num + “ is even” : num + “ is odd”);

Conditional Operator, cont. (boolean. Exp) ? exp 1 : exp 2

Conditional Operator, cont. (boolean. Exp) ? exp 1 : exp 2

Arithmetic Expressions is translated to (3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y) 39

Arithmetic Expressions is translated to (3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y) 39