看板 java 關於我們 聯絡資訊
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : 版主的功能就是當壞人嗎? [遠目] : ※ 引述《jeeyi345 (letmein)》之銘言: : : 我要模擬Banker's Algorithm : 你就算要模擬 Google 演算法也無所謂 只是大概解釋一下為何需要二維陣列 : : 所以需要用二維陣列計算,我用讀txt檔的方式輸入 : : : 上面這段程式,對於看的人來說有什麼問題呢? : 1. 沒有良好縮排 : 2. 有奇怪的註解混進來了,真正的註解反而沒半個 : 3. 不知道 `input` 是怎麼來的,連是哪個 class 都不知道 : 4. 不知道 TXT 檔內容是啥樣子 public static void main(String[] args) throws Exception { int acin[][]=new int[50][3]; File allocin = new File("D:\\alloc.txt"); //alloc.txt位置;預設為D Scanner input = new Scanner(allocin);//準備讀取alloc.txt while(input.hasNext()){ for(int j=0;j<acin[j].length;j++){ for(int i=0;i<3;i++){ acin[j][i]=input.nextInt(); System.out.print(acin[j][i]); } System.out.println(); } } input.close(); } txt檔內容: 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2 輸出 010 200 302 211 002 Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) : : 請問該怎麼解決呢? : 1. 請搞清楚那個不知道是什麼的 input 的 hasNext() / nextInt() 是啥意思 : 2. 請搞清楚你三層迴圈之間的關係,尤其是扯到 1 的部份 : 3. 說不定根本就是你的 TXT 不能滿足 XD 就我看說明理解,hasNext()是當還有值時輸入,nextInt()是輸入int 因為我看錯誤敘述猜測是沒有值,而acin[][]還沒用完產生的錯誤, 想用hasNext() break跳出來解決,但沒辦法 因為寫一維陣列時沒有遇過這個問題,想請教各位高手 這兩次是在這初次發文,請多包含 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.95.64
cuteclare:你一次讀了九個吧? 06/09 19:23
jeeyi345:輸出看起來都讀了,不明白你的意思耶,不好意思 06/09 20:02
mars90226:for(int j=0;j<acin[j].length;j++) 你不覺得怪怪的嗎? 06/09 20:30
jeeyi345:本來是acin.length,根據前一篇文章回應中修改的。 06/09 20:50
gmoz:因為你沒有搞懂hasNext()跟NextInt()的差別 你可以想想看 06/09 21:05
gmoz:跟[][]沒用完100%一點關係都沒有 提示:認的對象不同 06/09 21:10
jeeyi345:我想到條件改hasNextInt()或陣列改String,但錯誤一樣 06/09 21:24
mars90226:版主是在說你的第二個for吧? 06/09 21:25
mars90226:你用3個迴圈去讀二維陣列,你想一下是不是怪怪的? 06/09 21:28
cuteclare:1(input.hasNex) < 3*3(acin[j].length*3)個input.next 06/09 21:31
jeeyi345:直接改acin[5][3]就可以,二維陣列不能多給空間在裁減囉 06/09 21:43
jeeyi345:一維陣列輸入時我是那麼做的 06/09 21:49
PsMonkey:回文跟推文已經算給你答案了,其餘得靠你自己努力了 06/09 21:50
jeeyi345:謝謝各位熱心回復,我再看推文好好想 資質駑鈍啊 06/09 22:03
PsMonkey:這無關資質,而是凡人必經的過程(我到現在還是常常遇到 06/09 22:11
cuteclare:天啊~板主是凡人(大吃一驚! 06/09 22:18
PsMonkey:==" 樓上都沒看版標嗎? [淚目] 06/09 22:19
jeeyi345:原來PsMonkey是板主XD初來不識泰山 推文感動到,有動力了 06/09 22:32
gmoz:提示:你的1次while = 跑3次nextInt,檢查的地方要改. 06/09 22:36
gmoz:建議你先學會操作IDE的單步執行來除錯 06/09 22:37
gmoz:改陣列長度可以是因為數量剛好 不要再提陣列了XD 06/09 22:39
jeeyi345:試出來了\^0^/謝謝謝謝謝謝!要感謝的人太多了,就謝天吧 06/09 23:02
jeeyi345:感覺各位下筆前都很清楚,不像我錯了明示暗示還看不出來 06/09 23:06
gtu001:你只在最外層檢查hasnext不行,裡面每取值一次都要檢查 06/10 21:25
jej:初次看到code的時候還是覺得看FileInputStream可能比較好 06/11 12:10
jej:看到檔案內容後我就...噴了.... 06/11 12:12