<< Chapter < Page Chapter >> Page >
The flow of control refers to the order in which a program’s statements are executed. Unless directed otherwise, the normal flow of control for all programs is sequential. This means that statements are executed in sequence, one after another, in the order in which they are placed within the program. Selection, repetition and function invocation structures permit the flow of control to be altered in defined ways. This chapter introduces to you C++’s selection statements. Repetition and invocation techniques are presented in the next two chapters.

Selection criteria

Relational operators

Relational operators are used to compare two operands for equality and to determine if one numeric value is greater than another. A Boolean value of true or false is returned after two operands are compared. The list of relational operators is given below.

Relational operators


a = = b

(a*b) != c

s == ‘y’

x<= 4

The value of a relational expression such as a>40 depends on the value stored in the variable a.

Logical operators

Logical operators, AND, OR and NOT are used for creating more complex conditions. Like relational operators, a Boolean value of true or false is returned after the logical operation is executed.

When the AND operator,&&, is used with two simple expressions, the condition is true only if both individual expressions are true by themselves.

The logical OR operator, ||, is also applied with two expressions. When using the OR operator, the condition is satisfied if either one or both of the two expressions are true.

The NOT operator,!, is used to change an expression to its opposite state; thus, if the expression has any nonzero value (true),! expression produces a zero value (false). If an expression is false,! expression is true (and evaluates to false).



(age>40) || (term<10)


( i==j) || (a<b) || complete

The relational and logical operators have a hierarchy of execution similar to the arithmetic operators. The following table lists the precedence of these operators in relation to the other operators we have used.

Associativity of operators

Example: Assume the following declarations:

char key = ‘m’;

int i = 5, j = 7, k = 12;

double x = 22.5;

Results of expressions
By evaluating the expressions within parentheses first, the following compound condition is evaluated as:

Evaluation process

The bool data type

As specified by the ANSO/ISO standard, C++ has a built-in Boolean data type, bool, containing the two values true and false. As currently implemented, the actual values represented by the bool values, true and false, are the integer values 1 and 0, respectively. For example, consider the following program, which declares two Boolean variables:



int main()


bool t1, t2;

t1 = true;

t2 = false;

cout<<“The value of t1 is “<<t1

<<“\n and the value of t2 is “<<t2<<endl;

return 0;


The output of the program is:

The value of t1 is 1

and the value of t2 is 0

The if-else statement

The if-else statement directs the computer to select a sequence of one or more statements based on the result of a comparison.

Get the best College algebra course in your pocket!

Source:  OpenStax, Programming fundamentals in c++. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10788/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Programming fundamentals in c++' conversation and receive update notifications?