循環嵌套:spa
就是循環語句的循環體自己是一個循環語句。code
Demo1blog
需求:請輸出一個4行5列的星星(*)圖案。
結果:
*****
*****
*****
*****class
結論:
外循環控制行數
內循環控制列數循環
class ForForDemo { public static void main(String[] args) { //原始作法 System.out.println("*****"); System.out.println("*****"); System.out.println("*****"); System.out.println("*****"); System.out.println("-------------"); //雖然能夠完成需求,可是不是很好 //若是是多行多列就會比較麻煩 //因此咱們準備改進 //如何改進呢? //我先考慮如何實現一行*的問題 //System.out.println("*****"); //咱們要想的是如何實現一次輸出一顆*的問題 //System.out.println("*"); //System.out.println("*"); //如今雖然能夠一次一顆*,可是卻換行了,我要求不能換行,怎麼辦呢? //輸出語句的另外一種格式:System.out.print(); 這個是不帶換行的 //System.out.print("*"); //System.out.print("*"); //System.out.print("*"); //System.out.print("*"); //System.out.print("*"); //若是我要在一行上打出多顆*,比較麻煩,而代碼是重複的,因此我決定用循環改進 for(int x=0; x<5; x++) { System.out.print("*"); } //咱們能夠經過空的輸出語句實現換行:System.out.println(); System.out.println(); //既然我能夠打出一行,我就能夠打出第二行 for(int x=0; x<5; x++) { System.out.print("*"); } //咱們能夠經過空的輸出語句實現換行:System.out.println(); System.out.println(); //同理打出第三行,第四行 for(int x=0; x<5; x++) { System.out.print("*"); } //咱們能夠經過空的輸出語句實現換行:System.out.println(); System.out.println(); //既然我能夠打出一行,我就能夠打出第二行 for(int x=0; x<5; x++) { System.out.print("*"); } //咱們能夠經過空的輸出語句實現換行:System.out.println(); System.out.println(); System.out.println("-----------------"); //一樣的代碼出現了4次,說明咱們程序寫的很差,用循環改進 for(int y=0; y<4; y++) { for(int x=0; x<5; x++) { System.out.print("*"); } //咱們能夠經過空的輸出語句實現換行:System.out.println(); System.out.println(); } } }
Demo2程序
需求:請輸出下列的形狀數據
*static
**
***
****
*****tab
class ForForDemo2 { public static void main(String[] args) { //經過簡單的觀察,咱們看到這是一個行是5,列數是變化的形狀 //咱們先打印出一個5行5列的形狀 for(int x=0; x<5; x++) { for(int y=0; y<5; y++) { System.out.print("*"); } System.out.println(); } System.out.println("--------------"); //咱們實現了一個5行5列的形狀 //可是這不是咱們想要的 //咱們要的是列數變化的 //列數是如何變化的呢? //第一行:1列 y=0,y<=0,y++ //第二行:2列 y=0,y<=1,y++ //第三行:3列 y=0,y<=2,y++ //第四行:4列 y=0,y<=3,y++ //第五行:5列 y=0,y<=4,y++ //在看外循環x的變化,剛好就是x=0,1,2,3,4 //因此這個最終版的程序就是以下 for(int x=0; x<5; x++) { for(int y=0; y<=x; y++) { System.out.print("*"); } System.out.println(); } } }
Demo3di
需求:在控制檯輸出九九乘法表。
首先咱們寫出九九乘法表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
...
1*9=9 2*9=18 3*9=27 ...
咱們先把這個九九乘法表看出是這樣的一個形狀:
*
**
***
****
*****
******
*******
********
*********
class ForForDemo3 { public static void main(String[] args) { for(int x=0; x<9; x++) { for(int y=0; y<=x; y++) { System.out.print("*"); } System.out.println(); } System.out.println("--------------"); //爲了使用數據,咱們從1開始 for(int x=1; x<=9; x++) { for(int y=1; y<=x; y++) { System.out.print(y+"*"+x+"="+y*x+"\t"); /* 注意: '\x' x表示任意,這種作法叫轉義字符。 '\t' tab鍵的位置 '\r' 回車 '\n' 換行 */ } System.out.println(); } } }