Table of Contents

7.2 The else Statement

With a lone if statement, we can cause a single code block to be optionally executed. By adding an else clause, we can choose which of two code blocks should be executed. Syntactically, an else statement is an extension of an if statement:

if (condition) {
  substatements1
} else {
  substatements2
}

where condition can be any valid expression. substatements1 will be executed if condition is true; substatements2 will be executed if condition is false. In other words, an else statement is perfect for depicting a mutually exclusive decision; one code block will be executed and the other will not.

Here's some code to demonstrate:

var lastName = "Grossman";
var gender = "male";
if (gender =  = "male") {
  trace("Good morning, Mr. " + lastName + ".");
} else {
  trace("Good morning, Ms. " + lastName + ".");
}

The else clause often acts as the backup plan of an if statement. Recall our password-protected web site example. If the password is correct, we let the user enter the site; otherwise, we display an error message. Here's some code we can use to perform the password check (assume that userName and password are the user's entries and that validUser and correctPassword are the correct login values):

if (userName =  = validUser && password =  = correctPassword) {
  this.gotoAndPlay("intro");
} else {
  this.gotoAndStop("loginError");
}

7.2.1 The Conditional Operator

Simple two-part conditional statements can be expressed conveniently with the conditional operator (?:). The conditional operator has three operands, which you'll recognize as analogous to the components of an if-else statement series:

condition ? expression1 : expression2;

In a conditional operation, if condition is true, expression1 is evaluated and returned. Otherwise, expression2 is evaluated and returned. The conditional operator is just a quicker way to write the following conditional statement:

if (condition) {
  expression1
} else {
  expression2
}

Like a conditional statement, the conditional operator can be used to control the flow of a program:

// If command is "go", play the movie; otherwise, stop
command =  = "go" ? play( ) : stop( );

The conditional operator also provides a terse way to assign values to variables:

var guess = "c";
var answer = "d";
var response = (guess =  = answer) ? "Right" : "Wrong";

which is equivalent to:

var guess = "c";
var answer = "d";
if (guess =  = answer) {
  response = "Right";
} else {
  response = "Wrong";
}

Table of Contents