Chapter 29. C++’s Dustier Corners

There be of them that have left a name behind them.

—Ecclesiasticus XLIV, 1

This chapter describes the few remaining features of C++ that are not described in any of the previous chapters. It is titled "C++’s Dustier Corners" because these statements are hardly ever used in real programming.

do/while

The do/while statement has the following syntax:

do { 
        statement; 
                       statement; 
} while    (expression); 

The program loops, tests the expression, and stops if the expression is false (0).

Tip

This construct always executes at least once.

do/while is not frequently used in C++ because most programmers prefer to use a while/break combination.

goto

All the sample programs in this book were coded without using a single goto. In actual practice I find I use a goto statement about once every other year. For those rare times that a goto is necessary, its syntax is:

goto label;

where label is a statement label. Statement labels follow the same naming convention as variable names. Labeling a statement is done as follows:

               label: statement;

For example:

    for (x = 0; x < X_LIMIT; ++x) { 
        for (y = 0; y < Y_LIMIT; ++y) { 
            assert((x >= 0) && (x < X_LIMIT));
            assert((y >= 0) && (y < Y_LIMIT));
            if (data[x][y] == 0) 
                goto found; 
        } 
    } 
    std::cout << "Not found\n"; 
    exit(8); 

found: 
    std::cout << "Found at (" << x << ',' << y << ")\n";

One of the things you don’t want to do is to use a goto statement to skip over initialization code. For example:

{ goto skip_start; { int first = 1; skip_start: ...

Get Practical C++ Programming, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.