重新看了一遍當初學的C語言,感覺受益匪淺。
**外循環用來對內循環進行控制
內循環用來實現具體操作
內循環和外循環在結構上不能交叉
一個外循環內部可以有多個內循環**
for(int row=1;row<=7;row++){
for(int column=1;column<=row;column++)
cout<<"*";
cout<<endl;
}
比如打印以下圖案:
可以把整個程序分成兩部分,一個是輸出空格,另一個是輸出 *。
可以把圖形分成兩部分,一個是看不見的空格,另一個是可見的 * 。
第一行是3個空格和1個 * ;第二行2個空格和一個 *
由於for循環的第二個條件是控制循環的次數,即輸出單個圖形的個數
所以對於第一行來說,空格循環輸出3次,* 循環輸出1次;
第二行,空格循環輸出2次,* 循環輸出3次……
#include <iostream>
using namespace std;
int main(){
for(int row=1;row<=4;row++){
for(int j=3;j>=row;j--)
cout<<" ";
for(int i=1;i<=2*row-1;i++)//第二個條件控制循環次數
cout<<"*";
cout<<endl;
}
for(int row=1;row<=3;row++){
for(int j=1;j<=row;j++)
cout<<" ";
for(int i=5;i>=2*row-1;i--)
cout<<"*";
cout<<endl;
}
}
另一個例子:
每一行的第一個數字是與行數想對應的,應該利用行數進行循環減法進行輸出
#include <iostream>
using namespace std;
int main(){
for(int row=1;row<=5;row++){
int s=row; //用於從大往小做減法
for(int i=5;i>row;i--)
cout<<" ";
for(int j=1;j<=row;j++){
cout<<s;
s--;
}
cout<<endl;
}
}