計數式重複敘述使用方法巢狀for迴圈

Download Report

Transcript 計數式重複敘述使用方法巢狀for迴圈

3-2-2計數式重複敘述使用方法
01010
10101
01010
01010
10101
01010
01010
10101
01010
for的巢狀結構
重複結構
for 迴圈
知道重複次數
巢狀結構
否
條件成立?
for( i=1; i<=9 ;
{
i++ )
是
for ( j=1 ; j <= 9 ; j++ )
{
printf……. ;
}
printf …
}
a=a+1;
;
非巢狀結構
--平行的2個for迴圈
for的巢狀結構
•程式由兩個以上的for(…)組成,即稱
之為for(…)巢狀結構
•for(…)巢狀結構分為內、外層迴圈,
程式先執行外層迴圈的「初值運算
式」,接著執行外層迴路的「測試運
算式」,其次才是內層迴圈,內層迴
圈執行完後,最後才是外層迴圈的
「增減量運算」。
for的巢狀結構 i*j
for(i=1; i<=9 ; i++)
for(j=1; ;j<=9
For(n=1
n<10; ;j++)
n++)
printf(“%4d”,i*j);
外層迴圈
內層迴圈
printf(“\n”);
注意:巢狀結構迴圈,每個迴圈不可以
交叉。
for巢狀迴圈應用─印出九九乘法
#include<stdio.h>
int main( ) {
int i, j;
for(i=1; i<=9; i++) {
for(j=1; j<=9; j++)
printf("%4d", i*j);
printf("\n");
}
system("pause")'
return 0;
}
/* 輸出i*j的值 */
/* 換行 */
執行結果
這是一個巢狀迴圈,印出九九乘法表,當
i=1時,j為1~9,故印出第一列,依此類堆
當i=2~9時,就印出整個基本的九九乘法表。
大家來畫小星星--巢狀for迴圈
#include <stdio.h>
#include <stdlib.h>
int main( ) {
int i, j ;
5
for ( i = 1; i <=
{
for( j=1; j<= i
{
printf(“*” );
}
printf(" \n ");
}
system("pause");
return 0;
}
1
*
**
***
****
*****
;
i++
; j++
2
*****
****
***
**
*
3
*
**
***
****
*****
4
*
***
*****
*******
*********
) /* 行數 */
) /* 星星數 */ 行數 i
1
2
3
4
5
i
星星數 j
1
2
3
4
5
i
#include <stdio.h>
2
#include <stdlib.h>
int main( ) {
int i, j ;
for ( i = 1; i <= 5 ; i++ ) /* 行數 */
{
for( j=1; j<= 6-i ; j++ ) /* 星星數 */
printf("*");
printf("\n");
}
system("pause");
return 0;
}
*****
****
***
**
*
行數 i
星星數 j
1
2
3
4
5
5
4
3
2
1
i
6-i
3
#include <stdio.h>
#include <stdlib.h>
int main( ) {
int i, j ,k;
for ( i = 1; i <= 5 ; i++ ) /* 行數 */
{
for(k=1;k<=5-i;k++)
printf(“ ”); /* 空格 */
for( j=1; j<=i;j++ ) /* 星星數 */
printf("*");
printf("\n");
}
system("pause");
return 0;
}
*
**
***
****
*****
行數 i
空格數k
1
2
3
4
5
4
3
2
1
0
i
5-i
#include <stdio.h>
4
*
#include <stdlib.h>
***
int main( ) {
*****
int i, j ,k;
*******
for ( i = 1; i <= 5 ; i++ ) /* 行數 */
*********
{
for(k=1;k<=5-i;k++)
行數 i
printf(“ ”); /* 空格 */
for( j=1; j<= (2*i)-1 ; j++ ) /* 星星數 */
1
printf("*");
2
3
printf("\n");
4
}
5
system("pause");
i
return 0;
}
星星數 j
1
3
5
7
9
2i-1