go to previous page   go to home page   go to next page hear noise highlighting

What suffix is chosen if (count+1) is equal to 5?

Answer:

suffix = "th";


Matching if's and else's

if ( count+1  == 2  )      <--- false: go to false branch
  suffix = "nd";
else 
  if ( count+1 == 3  )     <--- false: go to inner false branch
    suffix = "rd";
  else
    suffix = "th";         <--- inner false branch executed

The fragment shows how the nested if works when (count+1) is equal to 5. The outer if is false, so its false-branch is chosen. Now the if of that branch (the nested if) tests (count+1) and picks its false-branch.

When (count+1) is 4 or greater the "th" suffix is chosen. It is sometimes hard to see exactly how the if's and else's nest in programs like this. Braces can be used to show what matches what, but lets starts with a rule that does not talk about that.

Rule: Start with the first if and work downward. Each else matches the closest previous unmatched if. An if matches only one else and an else matches only one if.

You should indent the program to show this, but remember that the compiler does not pay any attention to indenting. Here is the program fragment again showing the matching if's and else's.


if ( count+1  == 2  )
  suffix = "nd";
else 
  if ( count+1 == 3  )
    suffix = "rd";
  else
    suffix = "th";

QUESTION 12:

Here is another example. It is not indented properly. Use the rule to figure out which ifs and elses match.


if ( a == b )
  
if ( d == e )
  total = 0;
  
else
  total = total + a;

else
  total = total + b;

go to previous page   go to home page   go to next page