哈嘍大家好,這裡是Java小白成長記!
昨天給大家安排了九九乘法表,應用了一下for循環的嵌套,for循環這麼強大,只有一個例子怎麼夠呢?今天再給大家分享一個小星星!
你以為的小星星是這樣的:
其實呢,是這樣的:
大家看到這個也是一行一行的,有了昨天的基礎,所以能夠自然地想到了for循環的嵌套。這個行數有點多,我們用一個五行的來分析:
今天我直接把每行的數據寫出來,這樣看上去更加的明確。
因為每一行既要輸出空格又要輸出星星,所以今天要在控制行數的for循環裡嵌套兩個for循環,一個用來輸空格,一個用來輸出星星,畢竟兩者的規律不一樣。
首先控制行數的for循環應該很熟悉了,一共五行,最後才能換行,所以寫成:
for(int i= 1;i<=5 ; i++){
java語句;
System.out.println();
}
裡面的java語句就是兩個for循環,因為先輸出空格,我們先分析空格的代碼怎麼寫:其實也就是找規律,找到規律就會寫。可以看到行數和空格對應的分別是1和4、2和3、3和2、4和1、5和0,這個規律很好看出來,就是他們的和都是5。大家別忘了行數現在就是i了,既然他們的和都是5,我們定義一個新的變量j=5,每當j>i的時候,就列印一個空格,然後j--;列印空格的方法昨天說了,就是在System.out.print("")的雙引號中空一格,還是提醒一下,別把print寫成了println,所以第第二個for循環就完成了:
現在就剩下輸出星星的for循環了,我們來看下有什麼規律。1、3、5、7、9,這不就是奇數列嗎!然後想想奇數列的公式是不是2*n-1。現在規律找到了,該寫代碼了。工公式中的n是不是就是行數,也就是我們的變量i,但是我們不可能直接輸出(2*i-1)個星星,需要一個一個的輸出,所以還是需要用for循環。因此可以把n定義成變量,讓n=1,也就是int n= 1;判斷條件就是n<=2*i-1,然後n++;輸出星星就是在雙引號裡面輸入一個星星,也就是「*」。
寫的對不對可以帶一個數字進去看一看,比如當i=2的時候(2*i-1)=3,n從1變成3循環會進行三次,也就輸出三個星星,所以寫的是對的。
第三個for循環的代碼:
現在所有的都寫完了,我們把它們寫到一起:
然後去DOS命令窗口看下結果:
完美,說明以上的分析都沒有問題,現在我們再把代碼升級一下。現在代碼只能輸出5行星星,我們把從DOS命令窗口輸入數據的代碼加進去,定義一個變量來存放你輸入的數字,然後把代碼中的5都換成你定義的新變量,我就定義成x了:
這我就不演示了,肯定是沒問題的。
今天的內容就到這了,明天繼續分享星星,只不過明天的星星是這樣的:
感興趣的小夥伴可以自己嘗試一下,原理和今天的是一樣的,看看自己能不能做出來,明天我再分享。
喜歡編程,願意每天和小編學習java的小夥伴可以點一下關注,小編每天都會分享代碼,希望大家多多支持,感謝!