C++ Primer, Fifth Edition
not seem to be required.
lvalue An expression that yields an object or function. A nonconst lvalue that
denotes an object may be the left-hand operand of assignment.
operands Values on which an expression operates. Each operator has one or
more operands associated with it.
operator Symbol that determines what action an expression performs. The
language defines a set of operators and what those operators mean when applied
to values of built-in type. The language also defines the precedence and
associativity of each operator and specifies how many operands each operator
takes. Operators may be overloaded and applied to values of class type.
order of evaluation Order, if any, in which the operands to an operator are
evaluated. In most cases, the compiler is free to evaluate operands in any order.
However, the operands are always evaluated before the operator itself is
evaluated. Only the &&, ||, ?:, and comma operators specify the order in which
their operands are evaluated.
overloaded operator Version of an operator that is defined for use with a class
type. We’ll see in Chapter 14 how to define overloaded versions of operators.
precedence Defines the order in which different operators in a compound
expression are grouped. Operators with higher precedence are grouped more
tightly than operators with lower precedence.
promoted See integral promotions.
reinterpret_cast Interprets the contents of the operand as a different type.
Inherently machine dependent and dangerous.
result Value or object obtained by evaluating an expression.
rvalue Expression that yields a value but not the associated location, if any, of
that value.
short-circuit evaluation Term used to describe how the logical 
AND
and logical
OR
operators execute. If the first operand to these operators is sufficient to
determine the overall result, evaluation stops. We are guaranteed that the second
operand is not evaluated.
sizeof Operator that returns the size, in bytes, to store an object of a given type
name or of the type of a given expression.
static_cast An explicit request for a well-defined type conversion. Often used to
override an implicit conversion that the compiler would otherwise perform.
unary operators Operators that take a single operand.
www.it-ebooks.info
Convert pdf file to ppt online - C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
converter pdf to powerpoint; change pdf to powerpoint
Convert pdf file to ppt online - VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
change pdf to ppt; how to convert pdf to powerpoint in
C++ Primer, Fifth Edition
, operator Comma operator. Binary operator that is evaluated left to right. The
result of a comma expression is the value of the right-hand operand. The result is
an lvalue if and only if that operand is an lvalue.
?: operator Conditional operator. Provides an if-then-else expression of the form
cond ?  expr1 :  expr2;
If the condition 
cond
is true, then 
expr1
is evaluated. Otherwise, 
expr2
is
evaluated. The type 
expr1
and 
expr2
must be the same type or be convertible to
a common type. Only one of 
expr1
or 
expr2
is evaluated.
&& operator Logical 
AND
operator. Result is true if both operands are true.
The right-hand operand is evaluated 
only
if the left-hand operand is true.
& operator Bitwise 
AND
operator. Generates a new integral value in which each
bit position is 1 if both operands have a 1 in that position; otherwise the bit is 0.
^ operator Bitwise exclusive or operator. Generates a new integral value in
which each bit position is 1 if either but not both operands contain a 1 in that bit
position; otherwise, the bit is 0.
|| operator Logical 
OR
operator. Yields true if either operand is true. The right-
hand operand is evaluated 
only
if the left-hand operand is false.
| operator Bitwise 
OR
operator. Generates a new integral value in which each bit
position is 1 if either operand has a 1 in that position; otherwise the bit is 0.
++ operator The increment operator. The increment operator has two forms,
prefix and postfix. Prefix increment yields an lvalue. It adds 1 to the operand and
returns the changed value of the operand. Postfix increment yields an rvalue. It
adds 1 to the operand and returns a copy of the original, unchanged value of the
operand. Note: Iterators have ++ even if they do not have the + operator.
-- operator The decrement operator has two forms, prefix and postfix. Prefix
decrement yields an lvalue. It subtracts 1 from the operand and returns the
changed value of the operand. Postfix decrement yields an rvalue. It subtracts 1
from the operand and returns a copy of the original, unchanged value of the
operand. Note: Iterators have -- even if they do not have the -.
<< operator The left-shift operator. Shifts bits in a (possibly promoted) copy of
the value of the left-hand operand to the left. Shifts as many bits as indicated by
the right-hand operand. The right-hand operand must be zero or positive and
strictly less than the number of bits in the result. Left-hand operand should be
unsigned; if the left-hand operand is signed, it is undefined if a shift causes a
different bit to shift into the sign bit.
>> operator The right-shift operator. Like the left-shift operator except that bits
www.it-ebooks.info
Online Convert PowerPoint to PDF file. Best free online export
Online Powerpoint to PDF Converter. Download Free Trial. Convert a PPTX/PPT File to PDF. Just upload your file by clicking on the blue
convert pdf into powerpoint online; pdf to powerpoint slide
How to C#: Convert PDF, Excel, PPT to Word
Program.RootPath + "\\" Output.docx"; // Load a PDF document How to C#: Convert Excel to Word. RootPath + "\\" Output.docx"; // Load an Excel (.xlsx) file.
create powerpoint from pdf; how to add pdf to powerpoint presentation
C++ Primer, Fifth Edition
are shifted to the right. If the left-hand operand is signed, it is implementation
defined whether bits shifted into the result are 0 or a copy of the sign bit.
~ operator Bitwise 
NOT
operator. Generates a new integral value in which each
bit is an inverted copy of the corresponding bit in the (possibly promoted)
operand.
! operator Logical 
NOT
operator. Returns the inverse of the bool value of its
operand. Result is true if operand is false and vice versa.
Chapter 5. Statements
Contents
Section 5.1 Simple Statements
Section 5.2 Statement Scope
Section 5.3 Conditional Statements
Section 5.4 Iterative Statements
Section 5.5 Jump Statements
Section 5.6 try Blocks and Exception Handling
Chapter Summary
Defined Terms
Like most languages, C++ provides statements for conditional execution, loops that
repeatedly execute the same body of code, and jump statements that interrupt the
flow of control. This chapter looks in detail at the statements supported by C++.
Statements
are executed sequentially. Except for the simplest programs, sequential
execution is inadequate. Therefore, C++ also defines a set of 
flow-of-control
statements that allow more complicated execution paths.
5.1. Simple Statements
Most statements in C++ end with a semicolon. An expression, such as ival + 5,
becomes an expression statement when it is followed by a semicolon. Expression
statements cause the expression to be evaluated and its result discarded:
Click here to view code image
ival + 5;      // rather useless expression statement
cout << ival;  // useful expression statement
www.it-ebooks.info
How to C#: Convert Word, Excel and PPT to PDF
Online C# Tutorial for Converting MS Office Word, Excel and How to C#: Convert PPT to PDF. sample code may help you with converting PowerPoint to PDF file.
convert pdf document to powerpoint; how to add pdf to powerpoint
C# PDF Convert: How to Convert MS PPT to Adobe PDF Document
performance PDF conversion from Microsoft PowerPoint (.ppt and .pptx FILE_TYPE_UNSUPPORT: Console.WriteLine("Fail: can not convert to PDF, file type unsupport
pdf to ppt converter; embed pdf into powerpoint
C++ Primer, Fifth Edition
The first statement is pretty useless: The addition is done but the result is not used.
More commonly, an expression statement contains an expression that has a side effect
—such as assigning a new value to a variable, or printing a result—when it is
evaluated.
Null Statements
The simplest statement is the empty statement, also known as a null statement. A
null statement is a single semicolon:
; // null statement
A null statement is useful where the language requires a statement but the
program’s logic does not. Such usage is most common when a loop’s work can be
done within its condition. For example, we might want to read an input stream,
ignoring everything we read until we encounter a particular value:
Click here to view code image
// read until we hit end-of-file or find an input equal to sought
while (cin >> s && s != sought)
; // null statement
This condition reads a value from the standard input and implicitly tests cin to see
whether the read was successful. Assuming the read succeeded, the second part of
the condition tests whether the value we read is equal to the value in sought. If we
found the value we want, the while loop is exited. Otherwise, the condition is
evaluated again, which reads another value from cin.
Best Practices
Null statements should be commented. That way anyone reading the code
can see that the statement was omitted intentionally.
Beware of Missing or Extraneous Semicolons
Because a null statement is a statement, it is legal anywhere a statement is expected.
For this reason, semicolons that might appear illegal are often nothing more than null
statements. The following fragment contains two statements—the expression
statement and the null statement:
Click here to view code image
ival = v1 + v2;; // ok: second semicolon is a superfluous null statement
Although an unnecessary null statement is often harmless, an extra semicolon
www.it-ebooks.info
C# TIFF: Learn to Convert MS Word, Excel, and PPT to TIFF Image
Excel, PPT to TIFF. Learn How to Change MS Word, Excel, and PowerPoint to TIFF Image File in C#. Overview for MS Office to TIFF Conversion. In order to convert
how to convert pdf into powerpoint; change pdf to powerpoint on
VB.NET PowerPoint: Process & Manipulate PPT (.pptx) Slide(s)
slide, extract slides and merge/split PPT file without depending control add-on can do PPT creating, loading & profession imaging controls, PDF document, image
change pdf to powerpoint online; convert pdf to powerpoint with
C++ Primer, Fifth Edition
following the condition in a while or if can drastically alter the programmer’s intent.
For example, the following code will loop indefinitely:
Click here to view code image
// disaster: extra semicolon: loop body is this null statement
while (iter != svec.end()) ; // the while body is the empty statement
++iter;     // increment is not part of the loop
Contrary to the indentation, the increment is not part of the loop. The loop body is
the null statement formed by the semicolon that follows the condition.
Warning
Extraneous null statements are not always harmless.
Compound Statements (Blocks)
compound statement, usually referred to as a block, is a (possibly empty)
sequence of statements and declarations surrounded by a pair of curly braces. A block
is a scope (§ 2.2.4, p. 48). Names introduced inside a block are accessible only in that
block and in blocks nested inside that block. Names are visible from where they are
defined until the end of the (immediately) enclosing block.
Compound statements are used when the language requires a single statement but
the logic of our program needs more than one. For example, the body of a while or
for loop must be a single statement, yet we often need to execute more than one
statement in the body of a loop. We do so by enclosing the statements in curly
braces, thus turning the sequence of statements into a block.
As one example, recall the while loop in the program in § 1.4.1 (p. 11):
Click here to view code image
while (val <= 10) {
sum += val;  // assigns sum + val to sum
++val;       // add 1 to val
}
The logic of our program needed two statements but a while loop may contain only
one statement. By enclosing these statements in curly braces, we made them into a
single (compound) statement.
Note
A block is 
not
terminated by a semicolon.
www.it-ebooks.info
Online Convert PDF file to Word. Best free online PDF Conversion
Online PDF to Word Converter. Download Free Trial. Convert a PDF File to Word. Just upload your file by clicking on the blue button
converting pdf to ppt online; convert pdf to ppt online
VB.NET PowerPoint: Use PowerPoint SDK to Create, Load and Save PPT
Save PPT File. Contrary to PowerPoint document inputting and loading, users can certainly export and save the PPT file after the creating or editing.
convert pdf pages to powerpoint slides; add pdf to powerpoint presentation
C++ Primer, Fifth Edition
We also can define an empty block by writing a pair of curlies with no statements.
An empty block is equivalent to a null statement:
Click here to view code image
while (cin >> s && s != sought)
{ } // empty block
Exercises Section 5.1
Exercise 5.1: What is a null statement? When might you use a null
statement?
Exercise 5.2: What is a block? When might you might use a block?
Exercise 5.3: Use the comma operator (§ 4.10, p. 157) to rewrite the
while loop from § 1.4.1 (p. 11) so that it no longer requires a block. Explain
whether this rewrite improves or diminishes the readability of this code.
5.2. Statement Scope
We can define variables inside the control structure of the if, switch, while, and
for statements. Variables defined in the control structure are visible only within that
statement and are out of scope after the statement ends:
Click here to view code image
while (int i = get_num()) // i is created and initialized on each iteration
cout << i << endl;
i = 0;  // error: i is not accessible outside the loop
If we need access to the control variable, then that variable must be defined outside
the statement:
Click here to view code image
// find the first negative element
auto beg = v.begin();
while (beg != v.end() && *beg >= 0)
++beg;
if (beg == v.end())
// we know that all elements in v are greater than or equal to zero
The value of an object defined in a control structure is used by that structure.
Therefore, such variables must be initialized.
www.it-ebooks.info
C++ Primer, Fifth Edition
Exercises Section 5.2
Exercise 5.4: Explain each of the following examples, and correct any
problems you detect.
(a) while (string::iterator iter != s.end()) { /* . . . */ }
(b) while (bool status = find(word)) { /* . . . */ }
if (!status) { /* . . . */ }
5.3. Conditional Statements
C++ provides two statements that allow for conditional execution. The if statement
determines the flow of control based on a condition. The switch statement evaluates
an integral expression and chooses one of several execution paths based on the
expression’s value.
5.3.1. The if Statement
An if statement conditionally executes another statement based on whether a
specified condition is true. There are two forms of the if: one with an else branch
and one without. The syntactic form of the simple if is
if (condition)
statement
An if else statement has the form
if (condition)
statement
else
statement2
In both versions, 
condition
must be enclosed in parentheses. 
condition
can be an
expression or an initialized variable declaration (§ 5.2, p. 174). The expression or
variable must have a type that is convertible (§ 4.11, p. 159) to bool. As usual,
either or both 
statement
and 
statement2
can be a block.
If 
condition
is true, then 
statement
is executed. After 
statement
completes,
execution continues with the statement following the if.
If 
condition
is false, 
statement
is skipped. In a simple if, execution continues
with the statement following the if. In an if else, 
statement2
is executed.
Using an 
if else
Statement
www.it-ebooks.info
C++ Primer, Fifth Edition
To illustrate an if statement, we’ll calculate a letter grade from a numeric grade.
We’ll assume that the numeric grades range from zero to 100 inclusive. A grade of
100 gets an “A++,” grades below 60 get an “F,” and the others range in clumps of
ten: grades from 60 to 69 inclusive get a “D,” 70 to 79 a “C,” and so on. We’ll use a
vector to hold the possible letter grades:
Click here to view code image
vector<string> scores = {"F", "D", "C", "B", "A", "A++"};
To solve this problem, we can use an if else statement to execute different
actions for failing and passing grades:
Click here to view code image
// if grade is less than 60 it's an F, otherwise compute a subscript
string lettergrade;
if (grade < 60)
lettergrade = scores[0];
else
lettergrade = scores[(grade - 50)/10];
Depending on the value of grade, we execute the statement after the if or the one
after the else. In the else, we compute a subscript from a grade by reducing the
grade to account for the larger range of failing grades. Then we use integer division (§
4.2, p. 141), which truncates the remainder, to calculate the appropriate scores
index.
Nested 
if
Statements
To make our program more interesting, we’ll add a plus or minus to passing grades.
We’ll give a plus to grades ending in 8 or 9, and a minus to those ending in 0, 1, or 2:
Click here to view code image
if (grade % 10 > 7)
lettergrade += '+';         // grades ending in 8 or 9 get a +
else if (grade % 10 < 3)
lettergrade += '-';         // those ending in 0, 1or 2 get a -
Here we use the modulus operator (§ 4.2, p. 141) to get the remainder and decide
based on the remainder whether to add plus or minus.
We next will incorporate the code that adds a plus or minus to the code that fetches
the letter grade from scores:
Click here to view code image
// if failing grade, no need to check for a plus or minus
if (grade < 60)
www.it-ebooks.info
C++ Primer, Fifth Edition
lettergrade = scores[0];
else {
lettergrade = scores[(grade - 50)/10]; // fetch the letter grade
if (grade != 100)  // add plus or minus only if not already an A++
if (grade % 10 > 7)
lettergrade += '+';  // grades ending in 8 or 9 get a +
else if (grade % 10 < 3)
lettergrade += '-';  // grades ending in 0, 1or 2 get a
-
}
Note that we use a block to enclose the two statements that follow the first else. If
the grade is 60 or more, we have two actions that we need to do: Fetch the letter
grade from scores, and conditionally set the plus or minus.
Watch Your Braces
It is a common mistake to forget the curly braces when multiple statements must be
executed as a block. In the following example, contrary to the indentation, the code to
add a plus or minus happens unconditionally:
Click here to view code image
if (grade < 60)
lettergrade = scores[0];
else  // WRONG: missing curly
lettergrade = scores[(grade - 50)/10];
// despite appearances, without the curly brace, this code is always executed
// failing grades will incorrectly get a - or a +
if (grade != 100)
if (grade % 10 > 7)
lettergrade += '+';  // grades ending in 8 or 9 get a +
else if (grade % 10 < 3)
lettergrade += '-';  // grades ending in 0, 1or 2 get a
-
Uncovering this error may be very difficult because the program looks correct.
To avoid such problems, some coding styles recommend always using braces after
an if or an else (and also around the bodies of while and for statements).
Doing so avoids any possible confusion. It also means that the braces are already in
place if later modifications of the code require adding statements.
Best Practices
Many editors and development environments have tools to automatically
indent source code to match its structure. It is a good idea to use such tools
if they are available.
www.it-ebooks.info
C++ Primer, Fifth Edition
Dangling 
else
When we nest an if inside another if, it is possible that there will be more if
branches than else branches. Indeed, our grading program has four ifs and two
elses. The question arises: How do we know to which if a given else belongs?
This problem, usually referred to as a dangling else, is common to many
programming languages that have both if and if else statements. Different
languages solve this problem in different ways. In C++ the ambiguity is resolved by
specifying that each else is matched with the closest preceding unmatched if.
Programmers sometimes get into trouble when they write code that contains more
if than else branches. To illustrate the problem, we’ll rewrite the innermost if
else that adds a plus or minus using a different set of conditions:
Click here to view code image
// WRONG: execution does NOT match indentation; the else goes with the inner if
if (grade % 10 >= 3)
if (grade % 10 > 7)
lettergrade += '+';  // grades ending in 8 or 9 get a +
else
lettergrade += '-'; // grades ending in 3, 4, 5, 6 will get a minus!
The indentation in our code indicates that we intend the else to go with the outer
if—we intend for the else branch to be executed when the grade ends in a digit
less than 3. However, despite our intentions, and contrary to the indentation, the
else branch is part of the inner if. This code adds a '-' to grades ending in 3 to 7
inclusive! Properly indented to match the actual execution, what we wrote is:
Click here to view code image
// indentation matches the execution path, not the programmer's intent
if (grade % 10 >= 3)
if (grade % 10 > 7)
lettergrade += '+';  // grades ending in 8 or 9 get a +
else
lettergrade += '-';  // grades ending in 3, 4, 5, 6 will get a
minus!
Controlling the Execution Path with Braces
We can make the else part of the outer if by enclosing the inner if in a block:
Click here to view code image
www.it-ebooks.info
Documents you may be interested
Documents you may be interested