310 likes | 380 Views
Chapter 5. Repetition and Loop Statements. Repetition in Programs. In most commercial software, you can repeat a process many times. When using an editor program, you can move the cursor to a program line and perform as many edit operations as you need to.
E N D
Chapter 5 Repetition and Loop Statements
Repetition in Programs • In most commercial software, you can repeat a process many times. • When using an editor program, you can move the cursor to a program line and perform as many edit operations as you need to. • Loop is a control structure that repeats a group of steps in a program. • Three C loop control statements • while • for • do-while
The while statement • Counter-controlled loop (or counting loop) • A loop whose required number of iterations can be determined before loop execution begins. • The syntax while (loop repetition condition) statement; • Loop repetition condition: the condition that controls loop repetition. • Infinite loop: a loop that executes forever
Example count_emp = 0; /* no employees processed yet */ while (count_emp < 7) { /* test value of count_emp */ printf("Hours> "); scanf("%d", &hours); printf("Rate> "); scanf("%lf", &rate); pay = hours * rate; printf("Pay is $%6.2f\n", pay); count_emp = count_emp + 1; /* increment count_emp */ } printf("\nAll employees processed\n");
Computing a Sum or a Product in a Loop • Loops often accumulate a sum or a product by repeating an addition or multiplication operation. • Accumulator • A variable used to store a value being computed in increments during the execution of a loop.
Compound Assignment Operators • C provide special assignment operators variableop =expression;
The for Statement • Three loop control components with the loop body. • Initialization of the loop control variable, • Test of the loop repetition condition, and • Change (update) of the loop control variable. • The for statement in C supplies a designed place for each of these three components .
Increment and Decrement Operators • The increment (i.e., ++) or decrement (i.e., --) operators are the frequently used operators which take only one operand. for(int i=0; i<100; i++) {…} for(int i=100; i>0; i--) {…} • Side effect: the value of its operand is incremented/decremented by one.
Prefix and Postfix Increments • The value of the expression in which the ++/-- operator is used depends on the position of the operator.
Conditional Loops • In many programming situations, you will not be able to determine the exact number of loop repetitions before loop execution begins. • Example: Monitor Gasoline Storage Tank (Fig. 5.9)
Loop Design • Problem-Solving Questions for Loop Design • What are the inputs? • What are the outputs? • Is there any repetition? • Do I know in advance how many time steps will be repeated? • How do I know how long to keep repeating the steps? • Sentinel-Controlled Loops • Endfile-Controlled Loops • Infinite Loops on Faulty Data
Sentinel-Controlled Loops • One way to do this is to instruct the user to enter a unique data value, called a sentinel value, after the last data item.(Fig. 5.10)
Endfile-Controlled Loops • A data file is always terminated by an endfile character that can be detected by the scanf and fscanf functions. • EOF stands for the endfile character.
Infinite Loops on Faulty Data • 70 7o • Detect faulty data
Nested Loops • Consist of an outer loop with one or more inner loops. (Fig. 5.13)
The do-while Statement • When we know that a loop must execute at least one time.
Flag-Controlled Loops • A flag is a variable used to represent whether or not a certain event has occurred. (Fig. 5.14)
Homework #5 • Due: 2006/10/25 • 利用迴圈和 '*'可以畫出許多圖形 1.定義一個CENTER常數(#define CENTER 20)表示所有圖形的中心位置 2.實作出一個 function prototype 如下: void triangle(int n); 其作用是繪出 n 排星號的等腰三角形 若n為正時,則畫出三角形是正立的,如a. (n=4) 若n為負時,則畫出三角形是倒立的,如b. (n=-4) 3.主程式將輸入多個整數(最後以0結尾),印出其對應的圖案 並判斷每個整數若不在-9 與 9 的範圍內則不予理會之 a. b. * ******* *** ***** ***** *** ******* *
Summary • Repetition and Loop Statements • Counter-Controller Loop • Sentinel-Controller Loop • Endfile-Controller Loop • Input Validation Loop • General Conditional Loop • while, for, and do-while • Compound Assignment Operators