[Java]利用迴圈印數字列

這是很多在學習Java都會遇到的作業,常在各大論談都有人提出,不過即然是作業了,應該自己學習來的好,可是老師一成不變的作業也說不過去是吧,這裡就提供了數種老師常會用來當作業的迴圈習題,像是印1 2 3 4 5 ,或是印* 星號等,有遇到就再補上。

印出1到5,5到1的數列,每一行內容為1到該行的數字長

1.png

利用數學式子,運算出1-5及5-1二種不同方向的數,再利用另一個迴圈印出該行的數列長,其中(i+1)/5 是取除5的整數,而(i + 1) %5 是取5的餘數。

程式碼如下:

        for(int i = 0 ; i < 9; i ++)
        {
            int d = java.lang.Math.abs((i +1)/5 *5  - (i +1)%5);
            System.out.print(" ");
            for(int j = 0 ; j < d ; j ++)
            {
                System.out.print(j+1);
            }
            System.out.println();
        }

印出5到1的數列,每一行內容為1到該行的數字長

2.png

就從5開始印,每次減一,另一回圈再印5到該數的所有數字

程式碼如下:

        for(int i = 5 ; i >0 ; i --)
        {
            System.out.print(" ");
            for(int j = 5; j >= i ; j --)
                System.out.print(j);
            System.out.println();
        }

印出一個等邊三角形

3.png

同第一個的想法,只是印出來的內容改成*星號

程式碼如下:

        for(int i = 0 ; i < 9; i ++)
        {
            int d = java.lang.Math.abs((i +1)/5 *5  - (i +1)%5);
            System.out.print(" ");
            for(int j = 0 ; j < d ; j ++)
            {
                System.out.print("*");
            }
            System.out.println();
        }

印出一個直角三角形

4.png

同第二個的想法,只是印出來的內容改成*星號

程式碼如下:

        for(int i = 5 ; i >0 ; i --)
        {
            System.out.print(" ");
            for(int j = 5; j >= i ; j --)
                System.out.print("*");
            System.out.println();
        }

發表迴響