![Page 1: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/1.jpg)
“C Control Statements : Looping”Using Bloodshed Dev-C++
Heejin Park
Hanyang University
![Page 2: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/2.jpg)
Introduction(1/2)
Revisiting the while Loop
The while Statement
Which Is Bigger: Using Relational Operators and Expressions
Indefinite Loops and Counting Loops
The for Loop
More Assignment Operators
The Comma Operator
2
![Page 3: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/3.jpg)
Introduction(2/2)
An Exit-Condition Loop: do while
Which Loop?
Nested Loops
Introducing Arrays
A Loop Example Using a Function Return Value
3
![Page 4: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/4.jpg)
Revisiting the while Loop
The summing.c Program
4
![Page 5: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/5.jpg)
Revisiting the while Loop
The summing.c Program
5
![Page 6: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/6.jpg)
Revisiting the while Loop
Program Comments
• Now let's take a closer look at the program structure. You can summarize it as follows:
6
![Page 7: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/7.jpg)
Revisiting the while Loop
Program Comments
• You can think of the following as a standard format for a loop:
7
![Page 8: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/8.jpg)
Revisiting the while Loop
C-Style Reading Loop
• can be replaced by the following:
8
![Page 9: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/9.jpg)
The while Statement
Structure of the while loop
9
![Page 10: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/10.jpg)
The while Statement
Terminating a while Loop
• It is important to realize that the decision to terminate the loop or to continue takes place only when the test condition is evaluated.
• Consider these examples
10
![Page 11: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/11.jpg)
The while Statement
The when.c Program
11
![Page 12: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/12.jpg)
The while Statement
The when.c Program
12
![Page 13: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/13.jpg)
The while Statement
while: An Entry-Condition Loop
• In a situation such as the following, the body of the loop is never entered. • because the condition is false to begin with:
• Change the first line to
13
![Page 14: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/14.jpg)
The while Statement
The while1.c Program
14
![Page 15: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/15.jpg)
The while Statement
The while1.c Program
…and so on, until you kill the program.
15
![Page 16: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/16.jpg)
The while Statement
Syntax Points
• Suppose you want to skip over input to the first character that isn't whitespace or a digit.
• You can use a loop like this:
16
![Page 17: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/17.jpg)
The while Statement
The while2.c Program
17
![Page 18: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/18.jpg)
The while Statement
The while2.c Program
18
![Page 19: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/19.jpg)
The while Statement
The while2.c Program
• You can use a loop like this:
19
![Page 20: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/20.jpg)
Which Is Bigger: Using Relational Operators and Expressions
Relational Operators
20
![Page 21: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/21.jpg)
Which Is Bigger: Using Relational Operators and Expressions
Relational Operators
• Here are three unrelated statements containing examples of relational expressions.
21
![Page 22: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/22.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The cmpflt.c Program
• The fabs()function• Declared in the math.h header file
• Can be handy for floating-point tests.
• Returns the absolute value of a floating-point value.
– That is, the value without the algebraic sign.
22
![Page 23: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/23.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The cmpflt.c Program
23
![Page 24: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/24.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The cmpflt.c Program
24
![Page 25: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/25.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The t_and_f.c Program(What Is Truth?)
25
![Page 26: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/26.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The t_and_f.c Program(What Is Truth?)
26
![Page 27: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/27.jpg)
Which Is Bigger: Using Relational Operators and Expressions
What Is Truth?
• Loops that are meant to run forever.
27
![Page 28: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/28.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The truth.c Program (What Else Is True?)
28
![Page 29: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/29.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The truth.c Program (What Else Is True?)
29
![Page 30: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/30.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The trouble.c Program (Troubles with Truth)
30
![Page 31: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/31.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The trouble.c Program (Troubles with Truth)
• After this input, printing “Please enter next integer (q to quit): ” will be continued infinitely.
31
![Page 32: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/32.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The relational operator == and the assignment operator =.
32
![Page 33: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/33.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The New _Bool Type
• If your system does not yet support the _Bool type, • you can replace _Bool with int, and the example will work the same.
• A _Bool variable can only have a value of 1 (true) or 0 (false).
33
![Page 34: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/34.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The boolean.c Program
34
![Page 35: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/35.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The boolean.c Program
35
![Page 36: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/36.jpg)
Which Is Bigger: Using Relational Operators and Expressions
The boolean.c Program
• Note how the code assigns the result of a comparison to the variable:
• Also note how the choice of name for the variable makes the while loop test easy to understand:
36
![Page 37: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/37.jpg)
Which Is Bigger: Using Relational Operators and Expressions
Precedence of Relational Operators
• The precedence of the relational operators is less than that of the arithmetic operators.
• Ex)• Means the same as
• It also means that
• means
37
![Page 38: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/38.jpg)
Which Is Bigger: Using Relational Operators and Expressions
Precedence of Relational Operators
• The relational operators have a greater precedence than the assignment operator.
• means
38
![Page 39: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/39.jpg)
Which Is Bigger: Using Relational Operators and Expressions
Precedence of Relational Operators
• The relational operators are themselves organized into two different precedences.
• Higher precedence group:
• Lower precedence group:
• Like most other operators, the relational operators associate from left to right.
• is the same as
39
![Page 40: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/40.jpg)
Which Is Bigger: Using Relational Operators and Expressions
Precedence of Relational Operators
40
![Page 41: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/41.jpg)
Indefinite Loops and Counting Loops
The sweetie1.c Program
41
![Page 42: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/42.jpg)
Indefinite Loops and Counting Loops
The sweetie1.c Program
42
![Page 43: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/43.jpg)
Indefinite Loops and Counting Loops
The sweetie1.c Program
• Three actions are involved in setting up a loop that is to be repeated a fixed number of times.1) A counter must be initialized.
2) The counter is compared with some limiting value.
3) The counter is incremented each time the loop is traversed.
43
![Page 44: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/44.jpg)
The for Loop
The sweetie2.c Program
44
![Page 45: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/45.jpg)
The for Loop
The sweetie2.c Program
45
![Page 46: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/46.jpg)
The for Loop
Structure of a for loop
46
![Page 47: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/47.jpg)
The for Loop
The for_cube.c Program
47
![Page 48: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/48.jpg)
The for Loop
The for_cube.c Program
48
![Page 49: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/49.jpg)
The for Loop
Using for for Flexibility
• Although the for loop looks similar to the FORTRAN DO loop, the Pascal FOR loop, and the BASIC FOR...NEXT loop.
• This flexibility stems from how the three expressions in a for specification can be used.
• Here are nine variations
49
![Page 50: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/50.jpg)
The for Loop
Using for for Flexibility1) You can use the decrement operator to count down instead of up:
50
![Page 51: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/51.jpg)
The for Loop
Using for for Flexibility2) You can count by twos, tens, and so on, if you want:
51
![Page 52: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/52.jpg)
The for Loop
Using for for Flexibility3) You can count by characters instead of by numbers:
52
![Page 53: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/53.jpg)
The for Loop
Using for for Flexibility
• Here's the abridged output:
53
![Page 54: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/54.jpg)
The for Loop
Using for for Flexibility4) You can test some condition other than the number of iterations.
In the for_cube program, you can replace
with
54
![Page 55: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/55.jpg)
The for Loop
Using for for Flexibility5) You can let a quantity increase geometrically instead of arithmetically.
that is, instead of adding a fixed amount each time, you can multiply by a fixed amount:
55
![Page 56: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/56.jpg)
The for Loop
Using for for Flexibility
• This program fragment multiplies debt by 1.1 for each cycle, increasing it by 10% each time.
• The output looks like this:
56
![Page 57: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/57.jpg)
The for Loop
Using for for Flexibility6) You can use any legal expression you want for the third expression. Whatever you put in will be updated for each iteration.
57
![Page 58: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/58.jpg)
The for Loop
Using for for Flexibility7) You can even leave one or more expressions blank(but don't omit the semicolons).
58
![Page 59: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/59.jpg)
The for Loop
Using for for Flexibility7) You can even leave one or more expressions blank(but don't omit the semicolons).
Incidentally, an empty middle control expression is considered to be true, so the following loop goes on forever:
59
![Page 60: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/60.jpg)
The for Loop
Using for for Flexibility8) The first expression need not initialize a variable.
It could, instead, be a printf() statement of some sort.
60
![Page 61: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/61.jpg)
The for Loop
Using for for Flexibility9) The parameters of the loop expressions can be altered by actions within the loop.
• If after a few iterations your program decides that delta is too small or too large
• delta can be changed by the user as the loop runs.
• This sort of adjustment is a bit on the dangerous side.
• Ex) setting delta to 0 gets you (and the loop) nowhere.
61
![Page 62: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/62.jpg)
More Assignment Operators
More Assignment Operators: +=, -=, *=, /=, %=
• is the same as
62
![Page 63: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/63.jpg)
The Comma Operator
The postage.c Program
63
![Page 64: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/64.jpg)
The Comma Operator
The postage.c Program
64
![Page 65: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/65.jpg)
The Comma Operator
The comma operator and the for loop.
65
![Page 66: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/66.jpg)
The Comma Operator
The comma operator and the for loop.
• The comma operator has two further properties. 1) it guarantees that the expressions it separates are evaluated in a left-to-right order.
2) the value of the whole comma expression is the value of the right-hand member.
66
![Page 67: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/67.jpg)
The Comma Operator
The comma operator and the for loop.
• Why anyone would do this is beyond the scope of this book.
• On the other hand, suppose you get careless and use comma notation in writing a number:
67
![Page 68: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/68.jpg)
The Comma Operator
The comma operator and the for loop.
• The comma also is used as a separator.
68
![Page 69: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/69.jpg)
An Exit-Condition Loop: do while
The do_while.c Program
69
![Page 70: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/70.jpg)
An Exit-Condition Loop: do while
The do_while.c Program
70
![Page 71: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/71.jpg)
An Exit-Condition Loop: do while
The entry.c Program
71
![Page 72: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/72.jpg)
An Exit-Condition Loop: do while
The entry.c Program
72
![Page 73: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/73.jpg)
An Exit-Condition Loop: do while
Structure of a do while loop.
• Here is the general form of the do while loop:
73
![Page 74: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/74.jpg)
An Exit-Condition Loop: do while
Structure of a do while loop.
• A do while loop• always executed at least once because the test is made after the body of the
loop has been executed.
• A for loop or a while loop• can be executed zero times because the test is made before execution.
74
![Page 75: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/75.jpg)
An Exit-Condition Loop: do while
Structure of a do while loop.
• Ex) a password program
75
![Page 76: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/76.jpg)
An Exit-Condition Loop: do while
Structure of a do while loop.
• Ex) a password program• Avoid a do while structure of the type shown in the following pseudocode:
• Here, after the user answers "no," some clever stuff gets done anyway because the test comes too late.
76
![Page 77: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/77.jpg)
Which Loop?
Which Loop?
• When you decide you need a loop, which one should you use?• To make a for loop like a while, you can omit the first and third expressions.
• is the same as
77
![Page 78: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/78.jpg)
Which Loop?
Which Loop?
• To make a while like a for, preface it with an initialization and include update statements.
• Is the same as
78
![Page 79: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/79.jpg)
Which Loop?
Which Loop?
• A while loop is natural for the following condition:
• The for loop is a more natural choice for loops involving counting with an index:
79
![Page 80: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/80.jpg)
Nested Loops
The rows1.c Program
80
![Page 81: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/81.jpg)
Nested Loops
The rows1.c Program
81
![Page 82: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/82.jpg)
Nested Loops
The rows2.c Program
• A Nested Variation
82
![Page 83: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/83.jpg)
Nested Loops
The rows2.c Program
• A Nested Variation
83
![Page 84: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/84.jpg)
Introducing Arrays
Arrays
• Array is a collection of same type elements under the same variable identifier referenced by index number.
debts is an array with 20 elements, each of which can hold a type float value.
The first element of the array is called debts[0]
The second element is called debts[1], and so on, up to debts[19].
84
![Page 85: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/85.jpg)
Introducing Arrays
Arrays
• Note that the numbering of array elements starts with 0, not 1. • Each element can be assigned a float value.
85
![Page 86: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/86.jpg)
Introducing Arrays
Arrays
• You can read a value into a particular element.
• Each of the following, for example, is bad code:
86
![Page 87: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/87.jpg)
Introducing Arrays
Arrays
• An array can be of any data type.
87
![Page 88: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/88.jpg)
Introducing Arrays
Character arrays and strings
88
![Page 89: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/89.jpg)
Introducing Arrays
The char and int arrays in memory
89
![Page 90: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/90.jpg)
Introducing Arrays
The scores_in.c Program(1/2)
• Using a for Loop with an Array
90
![Page 91: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/91.jpg)
Introducing Arrays
The scores_in.c Program(2/2)
• Using a for Loop with an Array
91
![Page 92: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/92.jpg)
Introducing Arrays
The scores_in.c Program
92
![Page 93: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/93.jpg)
Introducing Arrays
The scores_in.c Program
• This example illustrates several style points. 1) It's a good idea to use a #define directive to create a manifest constant
(SIZE) to specify the size of the array.
2) The idiom
is a handy one for processing an array of size SIZE.
93
![Page 94: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/94.jpg)
A Loop Example Using a Function Return Value
Using a Function Return Value
• Let's look at an algorithm
• To write a function with a return value, do the following:• When you define a function, state the type of value it returns.
• Use the keyword return to indicate the value to be returned.
94
![Page 95: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/95.jpg)
A Loop Example Using a Function Return Value
Using a Function Return Value
• For example
95
![Page 96: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/96.jpg)
A Loop Example Using a Function Return Value
Using a Function Return Value
• Here you return the value of a variable, but you can return the value of expressions, too.
• For instance, the following is a valid statement:
96
![Page 97: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/97.jpg)
A Loop Example Using a Function Return Value
The power.c Program(1/2)
97
![Page 98: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/98.jpg)
A Loop Example Using a Function Return Value
The power.c Program(2/2)
98
![Page 99: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/99.jpg)
A Loop Example Using a Function Return Value
The power.c Program
99
![Page 100: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/100.jpg)
A Loop Example Using a Function Return Value
Using Functions with Return Values
• These are the basic elements in defining and using a function with a return value.
• Declaring the function
• Calling the function
• Defining the function
• Using the return keyword
100
![Page 101: “C Control Statements : Looping” - Hanyangcalab.hanyang.ac.kr/...control_statements_looping.pdf · “C Control Statements: Looping” Using Bloodshed Dev-C++ Heejin Park Hanyang](https://reader031.vdocuments.us/reader031/viewer/2022020204/5a81760d7f8b9a38478d4775/html5/thumbnails/101.jpg)
A Loop Example Using a Function Return Value
Using Functions with Return ValuesEx) if you are supposed to declare functions before you use their return values
Qustion1)
how come you used the return value of scanf()without declaring scanf()?
Question 2)
Why do you have to declare power()separately when your definition of it says it is type double?
101