多重循環程序(嵌套循環)一

重新看了一遍當初學的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;
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章