Java黑皮书课后题第3章:**3.4(随机月份)编写一个随机产生1和12之间整数的程序,并根据数组1,2,3...显示对应的月份
**3.4(隨機(jī)月份)編寫一個(gè)隨機(jī)產(chǎn)生1和12之間整數(shù)的程序,并根據(jù)數(shù)組1,2,3...顯示對(duì)應(yīng)的月份
- 題目
- 題目描述
- 破題
- 代碼
- 如何理解產(chǎn)生隨機(jī)數(shù)
題目
題目描述
**3.4(隨機(jī)月份)編寫一個(gè)隨機(jī)產(chǎn)生1和12之間整數(shù)的程序,并根據(jù)數(shù)組1,2,3…顯示對(duì)應(yīng)的月份January, February,…,December
破題
代碼
public class Test3_4 {public static void main(String[] args) {// 產(chǎn)生隨機(jī)數(shù)int myMonth = (int)(Math.random() * 12 + 1);// 顯示月份switch(myMonth){case 1:System.out.println("January");break;case 2:System.out.println("February");break;case 3:System.out.println("March");break;case 4:System.out.println("April");break;case 5:System.out.println("May");break;case 6:System.out.println("June");break;case 7:System.out.println("July");break;case 8:System.out.println("August");break;case 9:System.out.println("September");break;case 10:System.out.println("October");break;case 11:System.out.println("November");break;default:System.out.println("December");}} }如何理解產(chǎn)生隨機(jī)數(shù)
int myMonth = (int)(Math.random() * 12 + 1);根據(jù)要求,要隨機(jī)產(chǎn)生1~12之間的整數(shù)
那么Math.random()隨機(jī)生成0到1左閉右開區(qū)間(即不含1)的double型浮點(diǎn)數(shù)
我們用符號(hào)表示:–>表示生成,從x到y(tǒng)但不含y的左閉右開[x,y)
Math.random() --> [0, 1)
Math.random()*12 --> [0, 12)
如果此時(shí)執(zhí)行強(qiáng)轉(zhuǎn)為int型:(int)(Math.random()*12)的話,只能獲取0、1、2、3、4、5、6、7、8、9、10、11這12個(gè)數(shù),而不是題目要求的從1到12的整數(shù)
所以強(qiáng)轉(zhuǎn)前對(duì)(Math.random()*12)這個(gè)整體加1
Math.random()*12+1–>[1,13)
此時(shí)強(qiáng)轉(zhuǎn)為int型,就能從1開始一直到12結(jié)束
總結(jié)
以上是生活随笔為你收集整理的Java黑皮书课后题第3章:**3.4(随机月份)编写一个随机产生1和12之间整数的程序,并根据数组1,2,3...显示对应的月份的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第3章:*3.3(代
- 下一篇: Java黑皮书课后题第3章:*3.5(给