2017-10-11 72 views
0

我試圖解決這個問題,在這個問題中輸入一個對應於星期幾(星期一 - 星期日)的數字1-7,然後在(0-20 )並且該程序返回一週中的某一天。我現在的解決方案除了'星期天'之外都適用你可以看到,如果程序打到「星期天」,那麼該數組就會超出界限。我可以簡單地說「如果newDay = 0,設置newDay = 7」,但我想看看是否有不同的解決方案。Java:simple array and mod

感謝您的幫助!

+0

想想如果「newDay」等於0會發生什麼情況,那麼您可以意識到問題出在哪裏。 – LHCHIN

回答

2

我不完全理解你正在做的背後的數學/邏輯,但我想我可以解釋(並糾正)錯誤。在下面的行的代碼:

newDay = (num + day) % 7; 

其中newDay可以取必須是0 6(含)之間和的值。所以,在我看來,你想訪問的天你的陣列如下:

System.out.println("The new day is " + days[newDay]); 

這是有道理的,因爲days有七個要素,通過尋址指數從0到6的包容性。