Home Segments Index Top Previous Next

419: Mainline

Rewriting the code fragment shown in Segment 416, using a switch statement, improves clarity:

switch (industry) { 
  case 1: case 5: 
    trade_pointers[limit]  
      = (struct trade*) malloc (sizeof (struct trade)); 
    trade_pointers[limit] -> price = price; 
    trade_pointers[limit] -> number = number; 
    ++limit; 
    break; 
  case 0: case 2: case 3: case 4: break; 
  default: printf ("Industry code %i is unknown!\n", industry); 
} 

If the industry code is 1, execution begins just after case 1. Because there are no statements before case 5, you might think that nothing would happen, but no statements implies no break statement, so execution falls through to the several statements, terminated by a break statement, following case 5.

Thus, trades with an industry code of 1 or 5 lead to the execution of the same statements. Codes 0, 2, 3, and 4 all lead to the execution of no statements. Other codes lead to a warning.