哈嘍大家好,這裡是Java小白成長記!
昨天給大家分享了java中的for循環,用for循環計算一千以內所以整數的和,不知大家學得怎麼樣了?
for循環是一個很強大的知識點,我們會經常使用,所以今天再講一個與for循環有關的代碼,那就是計算一個數的階乘。
階乘想必大家都知道,一個數的階乘就等於這個數乘所有小於它的正整數,公式也就是:n!=1x2x3x……x(n-1)xn。雖然說這是一個很簡單的知識,但是我們還是用Java來試著編寫一下代碼,鍛鍊一下我們的編程思維。
我們就用5的階乘來嘗試,答案是5*4*3*2*1=120。
編寫之前,先構思一下編寫思路:
計算5的階乘,我們先定義一個變量來存放最後的答案,初始值定為1,比如int sum =1;
可以在for循環裡定義一個變量為5,比如int i=5;然後用i去乘sum,所以sum的初始值一定不能為0,否則就沒意義了。
然後讓i每次減1,也就是i--;再用i乘sum,直到i的值等於1的時候,結束for循環,然後輸出sum的值。
代碼如下:
按照剛才的思考編寫代碼,完全沒有問題,還是要注意千萬不要把sum的初始值定義為0,0乘任何數結果都是0,那樣就沒意義了,然後進入循環,每個i都去乘sum,直到i變為1的時候,我們就把所有小於等於5的正整數算進去了,最後輸出sum就行了。
結果如圖:
當然代碼不是唯一的,我是讓i的初始值為5,大家也可以讓i的初始值為1,條件表達式就變成了i<=5;更新表達式就成了i++;
如圖:
兩種寫法都可以,結果是一樣的。我們還能把i>=1寫成i>0,把i<=5寫成i<6。所以編寫方式有很多,重要的是我們的思路一定要清晰。
我們再稍微升級一下代碼,這只能計算5的階乘,我們改成可以計算任何正整數階乘的,怎麼改?
對,也就是前面講的在DOS命令窗口中輸入數據,在代碼中加入相應的代碼:
整體並沒太多改動,只是加上相應的代碼,然後把5改成定義的變量,我這裡是n,最後輸出的時候把n寫到雙引號外面,並且用加號和後面連接,這樣我們就可以計算其他正整數的階乘了!
今天就分享到這裡了,大家自己嘗試做一下,明天繼續for循環的分享,明天見。