![]() |
[急,幫幫我]用NETBEANS寫的程式為啥在學校測試ok,在家不ok
public static void main(String[] args) {
int weight = Integer.parseInt(args[0]); int hight = Integer.parseInt(args[1]); double bmi = ((weight*1.0) / (hight*hight)*10000) ; System.out.println(bmi); } 我在學校測試,專案屬性參數我打"72 160" 會得到數值 28.125 為什麼在家同樣程式 為什麼出現 run: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at javaapplication16.Main.main(Main.java:20) Java Result: 1 成功建置 (總時間:0 秒) 到底是哪邊出錯?? 學校6.5版,我的6.7版 (打bmi的程式) |
微軟常常有這種怪問題出現,
解決方式1...重灌作業系統 解決方式2...把學校的電腦搬回你家用吧... |
引用:
因為學校是用舊版的6.5,我是用6.7的, 假如這樣的話,那這作業我不是就要到學校做了... 還是有其他程式編輯方法?? |
在家裝6.5版, 或者把學校的版本更新成6.7版...
環境不一樣,結果平來就不會一樣了 否則一堆軟體也不必特定區分支不支援 Server作業系統, 也不會有 win95版的軟體在winxp不能跑的問題 更不會有 vista作業系統不能跑某些舊版遊戲的問題了....... |
引用:
先問一下,我一樓的程式寫對吧?? int weight = Integer.parseInt(args[0]); int hight = Integer.parseInt(args[1]); 這兩行可以改寫嘛??就是ken in數字得到數值 |
可以執行就是對的 , 不能執行就是錯的...
agrs[0], args[1] 分別是你執行程式時, 在程式後加上去的 [參數] 專案屬性參數你打"72 160", 對程式而言, args[0]就是72, args[1]就是160 如果你專案屬性參數只打了"72", 對程式而言 args[0]就是72, args[1]則不存在......... 至於keyIn數字得到數值...要改寫, 當然可以, 程式有很多種寫法, 就看你想怎麼寫........ ============= 至於【有其他方式可以換寫成像我這樣的bmi程式嘛?】 不太懂你要寫什麼.... 計算BMI,不就是【體重 除以 [身高的平方] 再乘以 1萬】?? |
引用:
int weight = Integer.parseInt(args[0]); int hight = Integer.parseInt(args[1]); 我是說這兩行可以用別的方法改寫嘛?? 像kiy in 數字得到數值.... ==分隔線== 我用 int weight = 72 int hight = 160 可以得出結果, 可是我的作業是要像我一樓所說的, 要key in數值得到計算結果數值。。 可是老師只講這個作法,想說還有沒有其他作法.... 像這個網頁作法..... http://www.scpo.nccu.edu.tw/show/part1/b/B2/bmi.htm |
這是完全不一樣的東西, 那是網頁, 不是Java程式
而你現在要開始寫Java[視窗]程式.....跟本就太早了... 這是另一種方式 http://rotterdam.ics.uci.edu/info/JavaStringReading.htm |
引用:
老師是叫我們用這個網頁的bmi值等等的, 用netbeans設計像這樣子東西,就是數入一些值,if....else等等敘述,出現東西... 話說妳這個網頁是?? 我看了不懂她含意.... |
你有實際測試過那個程式嗎?
|
引用:
|
這個網址你有看嗎?
http://rotterdam.ics.uci.edu/info/JavaStringReading.htm (不會點進去看到一堆英文, 然後什麼輸入畫面都沒有...就關掉了吧...) |
引用:
算了,我還是用老師教的寫好了, 請問你有netbeans6.5版的嘛?想說幫我測試... |
public static void main(String[] args) {
int weight = Integer.parseInt(args[0]); int hight = Integer.parseInt(args[1]); //int weight = 120; //int hight = 160; double bmi = ((weight*1.0) / (hight*hight)*10000) ; if(bmi < 18.5 ){ System.out.println("體重過輕"); } else if(bmi >= 18.5 && bmi < 24 ){ System.out.println("正常範圍"); } else if(bmi >= 24 && bmi < 27 ){ System.out.println("過 重"); } else if(bmi >= 27 && bmi < 30 ){ System.out.println("輕度肥胖"); } else if(bmi >= 30 && bmi < 35 ){ System.out.println("中度肥胖"); } else{ System.out.println("重度肥胖"); } } |
如果你連 照著copy一次, 然後去試看看那支程式之後,
都還感覺不到那支程式的用途......(或者試不出所以然) 那真的是依照老師的方式來做最好 (先不要想其他方式了, 等你以後學比較多, 那時再說吧) |
引用:
我剛剛測試 好像要"Type some text and press 'Enter." 要輸入什麼東西... 可是真的看不懂,假如照你打的,我怕交出去後,老師又問東問西:初學者寫那麼高級的程式?? 所以我還是照原本的打, 只是我原本的程式打對嘛?? 可以請您幫我測試一下嘛,感恩... 學校另外教室電腦有6.1版,會跟6.5版差很多嘛?? 怕到時又不能測試...,想說妳有沒有6.5版的,幫我測試一下... |
你的程式在學校可以跑, 就表示程式沒有錯,
交出去吧 |
FTP使用問題, 請向你的學長詢問.....
|
引用:
想說這狀態是不是對方ftp關閉了... ==分隔線== 我已經亂搞搞出來了... |
小弟剛好有Netbeans
試了一下,程式是可以跑。 問題出在,你在家裡的 Netbeans 沒有給參數 72 160 參數要放在: 專案名稱 -> 滑鼠右鍵 -> properties -> 執行 -> 參數 -> 72 160 這樣應該就可以了! |
引用:
我的老師是教這樣:run→set project → configuration→customize... 這樣打開,輸入參數....學校專門上課教室電腦6.5版ok,我本人電腦6.7不行,學校另外教室電腦6.1版也是不行。 我給圖好了,你也順便把步驟圖給我: http://img690.imageshack.us/img690/2763/dfsdfsd.jpg |
引用:
即使是相同的編輯器不同版本操作方法也可能改變。 你(妳)必須知道為何要給參數?以及如何給參數? 以你的例子來說: 一般程式執行都是在『命令模式』就是 C:> 底下執行 所以正常程式執行應該如下面: C:>JavaApplication17 72 160 其中 JavaApplication17 是程式的名字、72 是體重、160 是身高。 程式收到參數後會儲存在『字串型態』的 args 陣列裡面, args[0] 放的就是 72、args[1] 放的就是 160 要計算時需轉換成『數值型態』,就是下面這兩行 int weight = Integer.parseInt(args[0]); int hight = Integer.parseInt(args[1]); 之後程式依據公式,算出 bmi 後列印出來。 --------------------------------------------------------------- 因為編輯器沒有『命令模式』讓你輸入身高、體重,所以提供『參數』功能讓 指定身高、體重。 家裡的編輯器一開始沒有設定身高、體重,當然就會出錯囉! 下面的錯誤訊息就是說,『字串型態』的陣列裡沒有適當的資料,指的就是 args陣列 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at javaapplication16.Main.main(Main.java:20) |
引用:
補充說明: 在command模式底下 要先打Java 也就是說 編譯時 C:\javac JavaApplication17.java 執行時...(執行JavaApplication17.class) C:\java JavaApplication17 72 160 在command模式,還有環境變數(path)的問題,如果沒設定的話, 在C:\輸入java....電腦會說【'java' 不是內部或外部命令、可執行的程式或批次檔】 |
引用:
引用:
老師也有講過用另一個方法,用命令提示字元方法來用, 只是他教法不知為什麼要刪除.class什麼檔的東西... |
命令模式的執行方法,就是 cwvdavid 兄補充的方法。
先『編譯』再『執行』。 .class檔應該就是編譯後的執行檔,需靠 java 指令來執行。 小弟也不清楚為何要刪除.class檔。 可能是教命令模式有點麻煩,用編輯器教比較方便吧! 也許課程的後面就會教你們用,命令模式來執行.... |
所有時間均為台北時間。現在的時間是 06:45 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *