Chapter 3. Everything is about control

 

This chapter covers

  • Conditional execution with if
  • Iterating over domains
  • Making multiple selections

In our introductory example, listing 1.1, we saw two different constructs that allowed us to control the flow of a program’s execution: functions and the for iteration. Functions are a way to transfer control unconditionally. The call transfers control unconditionally to the function, and a return statement unconditionally transfers it back to the caller. We will come back to functions in chapter 7.

The for statement is different in that it has a controlling condition (i < 5 in the example) that regulates if and when the dependent block or statement ({ printf(...) }) is executed. C has five conditional control statements: if, for, do, while, and switch. We will look at these statements in this chapter: if introduces a conditional execution depending on a Boolean expression; for, do, and while are different forms of iterations; and switch is a multiple selection based on an integer value.

C has some other conditionals that we will discuss later: the ternary operatorC, denoted by an expression in the form cond ? A : B (section 4.4), the compile-time preprocessor conditionals #if/#ifdef/#ifndef/#elif/#else/#endif (section 8.1.5), and type generic expressions denoted with the keyword _Generic (section 16.6).

3.1. Conditional execution

The first construct that we will look at is specified by the keyword if. It looks like this:

3.2. Iterations

3.3. Multiple selection

Summary