For循環嵌套

循環嵌套: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();
        }
    }
}
相關文章
相關標籤/搜索