O'Reilly logo

Practical C++ Programming, 2nd Edition by Steve Oualline

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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: printf("First ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required