Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Microsoft Visual C++ Windows Applications by Example
  • Table Of Contents Toc
Microsoft Visual C++ Windows Applications by Example

Microsoft Visual C++ Windows Applications by Example

By : Stefan Bjornander, Stefan Björnander
3.7 (21)
close
close
Microsoft Visual C++ Windows Applications by Example

Microsoft Visual C++ Windows Applications by Example

3.7 (21)
By: Stefan Bjornander, Stefan Björnander

Overview of this book

Table of Contents (15 chapters)
close
close
Microsoft Visual C++ Windows Applications by Example
Credits
About the Author
About the Reviewer
Preface
1
Index

Statements


There are four kinds of statements in C++ : selection, iteration, jump, and expression.

Group

Statements

Selection

if, if-else, switch

Iteration

for, while, do-while

Jump

break, continue, goto, return

Expression

expression ;

Selection Statements

The if statement needs, in its simplest form, a logical expression to decide whether to execute the statement following the if statement or not. The example below means that the text will be output if i is greater than zero.

if (i > 0)
{
  cout << "i is greater then 0";
}

We can also attach an else part, which is executed if the expression is false.

if (i > 0)
{
  cout << "i is greater then zero";
}
else
{
  cout << "i is not greater than zero";
}

Between the if and else part we can insert one or more else if part.

if (i > 0)
{
  cout << "i is greater then zero";
}
else if (i == 0)
{
  cout << "i is equal to zero";
}
else
{
  cout << "i is less than zero";
}

In the examples above, it is not strictly necessary to surround the output statements with brackets. However, it would be necessary in the case of several statements.In this book, brackets are always used. The brackets and the code in between is called a block.

if (i > 0)
{
  int j = i + 1;
  cout << "j is " << j;
}

A warning may be in order. In an if statement, it is perfectly legal to use one equals sign instead of two when comparing two values. As one equals sign is used for assignment, not comparison, the variable i in the following code will be assigned the value one, and the expression will always be true.

if (i = 1) // Always true.
{
  // ...
}

One way to avoid the mistake is to swap the variable and the value. As a value can be compared but not assigned, the compiler will issue an error message if you by mistake enter one equals sign instead of two signs.

if (1 = i) // Compile-time error.
{
  // ...
}

The switch statement is simpler than the if statement, and not as powerful. It evaluates the switch value and jumps to a case statement with the same value. If no value matches, it jumps to the default statement, if present. It is important to remember the break statement. Otherwise, the execution would simply continue with the code attached to the next case statement. The break statement is used to jump out of a switch or iteration statement. The switch expression must have an integral or pointer type and two case statements cannot have the same value. The default statement can be omitted, and we can only have one default alternative. However, it must not be placed at the end of the switch statement, even though it is considered good practice to do so.

switch (i)
{
  case 1:
    cout << "i is equal to 1" << endl;
    break;

  case 2:
    cout << "i is equal to 2" << endl;
    break;

  case 3:
    cout << "i is equal to 3" << endl;
    int j = i + 1;
    cout << "j = " << j;
    break;


  default:
    cout << "i is not equal to 1, 2, or 3." << endl;
    break;
}

In the code above, there will be a warning for the introduction of the variable j. As a variable is valid only in its closest surrounding scope, the following code below will work without the warning.

switch (i)
{
  // ...

  case 3:
    cout << "i is equal to 3" << endl;
    {
      int j = i + 1;
      cout << "j = " << j;
    }
    break;

    // ...
}

We can use the fact that an omitted break statement makes the execution continue with the next statement to group several case statements together.

switch (i)
{
  case 1:
  case 2:
  case 3:
    cout << "i is equal to 1, 2, or 3" << endl;
    break;

    // ...
}

Iteration Statements

Iteration statements iterate one statement (or several statements inside a block) as long as certain condition is true. The simplest iteration statement is the while statement. It repeats the statement as long as the given expression is true. The example below writes the numbers 1 to 10.

int i = 1;
while (i <= 10)
{
  cout << i;
  ++i;
}

The same thing can be done with a do-while statement.

int i = 1;
do
{
  cout << i;
  ++i;
}
while (i <= 10);

The do-while statement is less powerful. If the expression is false at the beginning, the while statement just skips the repetitions altogether, but the do-while statement must always execute the repetition statement at least once in order to reach the continuation condition.

We can also use the for statement, which is a more compact variant of the while statement. It takes three expressions, separated by semicolons. In the code below, the first expression initializes the variable, the repetition continues as long as the second expression is true, and the third expression is executed at the end of each repetition.

for (int i = 1; i <= 10; ++i)
{
  cout << i;
}

Similar to the switch statement, the iteration statements can be interrupted by the break statement.

int i = 1;
while (true)
{
  cout << i;
  ++i;
  if (i > 10)
  {
    break;
  }
}

Another way to construct an eternal loop is to omit the second expression of a for statement.

for (int i = 1; ; ++i)
{
  cout << i;

  if (i > 10)
  {
    break;
  }
}

An iteration statement can also include a continue statement. It skips the rest of the current repetition. The following example writes the numbers 1 to 10 with the exception of 5.

for (int i = 1; i <= 10; ++i)
{
  if (i == 5)
  {
    continue;
  }

  cout << i;
}

The following example, however, will not work. Because the continue statement will skip the rest of the while block, i will never be updated, and we will be stuck in an infinite loop. Therefore, I suggest you use the continue statement with care.

int i = 1;
while (i <= 10)
{
  if (i == 5)
  {
    continue;
  }

  cout << i;
  ++i;
}

Jump Statements

We can jump from one location to another inside the same function block by marking the latter location with a label inside the block with the goto statement.

int i = 1;
label: cout << i; 

++ i;
if (i <= 10)
{
  goto label;
}

The goto statement is, however, considered to give rise to unstructured code, so called "spaghetti code". I strongly recommend that you avoid the goto statement altogether.

Expression Statements

An expression can form a statement.

a = b + 1; // Assignment operator.
cout << "Hello, World!"; // Stream operator.
WriteNumber(5); // Function call.

In the above examples, we are only interested in the side effects; that a is assigned a new value or that a text or a number is written. We are allowed to write expression statements without side effects; even though it has no meaning and it will probably be erased by the compiler.

a + b * c;
CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
Microsoft Visual C++ Windows Applications by Example
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon