史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   [急,幫幫我]用NETBEANS寫的程式為啥在學校測試ok,在家不ok (http://forum.slime.com.tw/thread254203.html)

9319074 2009-11-02 08:51 PM

[急,幫幫我]用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的程式)

cwvdavid 2009-11-03 12:21 PM

微軟常常有這種怪問題出現,

解決方式1...重灌作業系統
解決方式2...把學校的電腦搬回你家用吧...

9319074 2009-11-03 12:50 PM

引用:

作者: cwvdavid (文章 2201505)
微軟常常有這種怪問題出現,

解決方式1...重灌作業系統
解決方式2...把學校的電腦搬回你家用吧...

會是新舊版的問題嘛??

因為學校是用舊版的6.5,我是用6.7的,

假如這樣的話,那這作業我不是就要到學校做了...

還是有其他程式編輯方法??

cwvdavid 2009-11-03 01:50 PM

在家裝6.5版, 或者把學校的版本更新成6.7版...

環境不一樣,結果平來就不會一樣了


否則一堆軟體也不必特定區分支不支援 Server作業系統,
也不會有 win95版的軟體在winxp不能跑的問題
更不會有 vista作業系統不能跑某些舊版遊戲的問題了.......

9319074 2009-11-03 04:07 PM

引用:

作者: cwvdavid (文章 2201520)
在家裝6.5版, 或者把學校的版本更新成6.7版...

環境不一樣,結果平來就不會一樣了


否則一堆軟體也不必特定區分支不支援 Server作業系統,
也不會有 win95版的軟體在winxp不能跑的問題
更不會有 vista作業系統不能跑某些舊版遊戲的問題了.......

有其他方式可以換寫成像我這樣的bmi程式嘛?

先問一下,我一樓的程式寫對吧??


int weight = Integer.parseInt(args[0]);
int hight = Integer.parseInt(args[1]);


這兩行可以改寫嘛??就是ken in數字得到數值

cwvdavid 2009-11-03 05:53 PM

可以執行就是對的 , 不能執行就是錯的...

agrs[0], args[1] 分別是你執行程式時, 在程式後加上去的 [參數]

專案屬性參數你打"72 160", 對程式而言, args[0]就是72, args[1]就是160
如果你專案屬性參數只打了"72", 對程式而言 args[0]就是72, args[1]則不存在.........


至於keyIn數字得到數值...要改寫, 當然可以,
程式有很多種寫法, 就看你想怎麼寫........

=============
至於【有其他方式可以換寫成像我這樣的bmi程式嘛?】
不太懂你要寫什麼....

計算BMI,不就是【體重 除以 [身高的平方] 再乘以 1萬】??

9319074 2009-11-03 07:27 PM

引用:

作者: cwvdavid (文章 2201565)
可以執行就是對的 , 不能執行就是錯的...

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

cwvdavid 2009-11-04 01:03 AM

這是完全不一樣的東西, 那是網頁, 不是Java程式

而你現在要開始寫Java[視窗]程式.....跟本就太早了...



這是另一種方式
http://rotterdam.ics.uci.edu/info/JavaStringReading.htm

9319074 2009-11-04 01:46 AM

引用:

作者: cwvdavid (文章 2201628)
這是完全不一樣的東西, 那是網頁, 不是Java程式

而你現在要開始寫Java[視窗]程式.....跟本就太早了...



這是另一種方式
http://rotterdam.ics.uci.edu/info/JavaStringReading.htm



老師是叫我們用這個網頁的bmi值等等的,

用netbeans設計像這樣子東西,就是數入一些值,if....else等等敘述,出現東西...

話說妳這個網頁是??

我看了不懂她含意....

cwvdavid 2009-11-04 11:23 AM

你有實際測試過那個程式嗎?

9319074 2009-11-04 01:48 PM

引用:

作者: cwvdavid (文章 2201703)
你有實際測試過那個程式嗎?

什麼程式??不懂你說的含意。。。

cwvdavid 2009-11-04 04:05 PM

這個網址你有看嗎?
http://rotterdam.ics.uci.edu/info/JavaStringReading.htm

(不會點進去看到一堆英文, 然後什麼輸入畫面都沒有...就關掉了吧...)

9319074 2009-11-04 09:06 PM

引用:

作者: cwvdavid (文章 2201748)
這個網址你有看嗎?
http://rotterdam.ics.uci.edu/info/JavaStringReading.htm

(不會點進去看到一堆英文, 然後什麼輸入畫面都沒有...就關掉了吧...)

我是不懂這程式是做什麼的-.-

算了,我還是用老師教的寫好了,

請問你有netbeans6.5版的嘛?想說幫我測試...

9319074 2009-11-04 09:13 PM

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("重度肥胖");
}
}

cwvdavid 2009-11-05 02:17 AM

如果你連 照著copy一次, 然後去試看看那支程式之後,
都還感覺不到那支程式的用途......(或者試不出所以然)

那真的是依照老師的方式來做最好

(先不要想其他方式了, 等你以後學比較多, 那時再說吧)

9319074 2009-11-05 07:38 AM

引用:

作者: cwvdavid (文章 2201896)
如果你連 照著copy一次, 然後去試看看那支程式之後,
都還感覺不到那支程式的用途......(或者試不出所以然)

那真的是依照老師的方式來做最好

(先不要想其他方式了, 等你以後學比較多, 那時再說吧)



我剛剛測試

好像要"Type some text and press 'Enter." 要輸入什麼東西...

可是真的看不懂,假如照你打的,我怕交出去後,老師又問東問西:初學者寫那麼高級的程式??

所以我還是照原本的打,

只是我原本的程式打對嘛??

可以請您幫我測試一下嘛,感恩...

學校另外教室電腦有6.1版,會跟6.5版差很多嘛??

怕到時又不能測試...,想說妳有沒有6.5版的,幫我測試一下...

cwvdavid 2009-11-05 10:11 AM

你的程式在學校可以跑, 就表示程式沒有錯,
交出去吧

cwvdavid 2009-11-05 01:25 PM

FTP使用問題, 請向你的學長詢問.....

9319074 2009-11-05 07:32 PM

引用:

作者: cwvdavid (文章 2201966)
FTP使用問題, 請向你的學長詢問.....

要問也沒得問,學長只給網址、帳密,下課就落跑了,也沒留聯絡方式...


想說這狀態是不是對方ftp關閉了...

==分隔線==

我已經亂搞搞出來了...

bblin2 2009-11-06 01:21 AM

小弟剛好有Netbeans
試了一下,程式是可以跑。

問題出在,你在家裡的 Netbeans 沒有給參數 72 160
參數要放在:
專案名稱 -> 滑鼠右鍵 -> properties -> 執行 -> 參數 -> 72 160

這樣應該就可以了!

9319074 2009-11-06 08:06 AM

引用:

作者: bblin2 (文章 2202086)
小弟剛好有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

bblin2 2009-11-07 12:14 PM

引用:

作者: 9319074 (文章 2202103)
你的步驟跟我老師講的不一樣耶,你的步驟圖可以給我嘛??

我的老師是教這樣:run→set project → configuration→customize...

這樣打開,輸入參數....學校專門上課教室電腦6.5版ok,我本人電腦6.7不行,學校另外教室電腦6.1版也是不行。

小弟建議你不要背步驟,因為不同的編輯器操作方法都不一樣。
即使是相同的編輯器不同版本操作方法也可能改變。

你(妳)必須知道為何要給參數?以及如何給參數?

以你的例子來說:
一般程式執行都是在『命令模式』就是 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)

cwvdavid 2009-11-07 06:37 PM

引用:

作者: bblin2 (文章 2202312)
小弟建議你不要背步驟,因為不同的編輯器操作方法都不一樣。
即使是相同的編輯器不同版本操作方法也可能改變。

你(妳)必須知道為何要給參數?以及如何給參數?

以你的例子來說:
一般程式執行都是在『命令模式』就是 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' 不是內部或外部命令、可執行的程式或批次檔】

9319074 2009-11-07 08:47 PM

引用:

作者: cwvdavid (文章 2202417)
補充說明:
在command模式底下

要先打Java

也就是說

編譯時
C:\javac JavaApplication17.java

執行時...(執行JavaApplication17.class)
C:\java JavaApplication17 72 160


在command模式,還有環境變數(path)的問題,如果沒設定的話,
在C:\輸入java....電腦會說【'java' 不是內部或外部命令、可執行的程式或批次檔】

引用:

作者: bblin2 (文章 2202312)
小弟建議你不要背步驟,因為不同的編輯器操作方法都不一樣。
即使是相同的編輯器不同版本操作方法也可能改變。

你(妳)必須知道為何要給參數?以及如何給參數?

以你的例子來說:
一般程式執行都是在『命令模式』就是 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)



老師也有講過用另一個方法,用命令提示字元方法來用,

只是他教法不知為什麼要刪除.class什麼檔的東西...

bblin2 2009-11-10 01:21 AM

命令模式的執行方法,就是 cwvdavid 兄補充的方法。
先『編譯』再『執行』。

.class檔應該就是編譯後的執行檔,需靠 java 指令來執行。
小弟也不清楚為何要刪除.class檔。
可能是教命令模式有點麻煩,用編輯器教比較方便吧!
也許課程的後面就會教你們用,命令模式來執行....


所有時間均為台北時間。現在的時間是 06:45 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1