廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3927 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
righer
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x12
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
文章表情[Java] [求助]這段JAVA的程式碼有一個地方不懂 麻煩能解說一下嗎?[已解決~感恩^^]
import javax.swing.JOptionPane;
public class Welcome{
public static void main(String args[])
{
String n1,n2;
int f1,f2,sum=0 ;
n1=JOptionPane.showInputDialog("請輸入一個整數");
n2=JOptionPane.showInputDialog("請輸入一個整數");
..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



[ 此文章被righer在2005-03-11 16:33重新編輯 ]


獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2005-03-11 05:05 |
PeterPan 手機
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 社區建設獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x1 鮮花 x99
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

在 main() 裡面宣告的變數稱為「自動變數」,必須設值﹝初始化﹞才能使用,如果只有單純宣告它,它並不會被分配memory address。

這題例子舉的不好,所以你會看不出來,我另外舉個小例子:
public class Test{
  public static void main(String[] args){
    int sum;
    sum++;
    System.out.println(sum);
  }
}
以上的source code無法編譯成功,會出現error message:variable sum might not have been initialized

所以自動變數一定要在宣告sum之後給它一個值﹝初始化﹞,才能使用,以下兩種方式都算是初始化↓
int sum;
sum = 0;
int sum = 0;

你的助教舉的例子等同於以下的 source code↓
import javax.swing.JOptionPane;
public class Welcome{
  public static void main(String args[]){
    String n1,n2;
    n1 = JOptionPane.showInputDialog("請輸入一個整數");
    n2 = JOptionPane.showInputDialog("請輸入一個整數");
    int sum = Integer.parseInt(n1) + Integer.parseInt(n2);
    JOptionPane.showMessageDialog(null,"sum = "+sum,"result",JOptionPane.PLAIN_MESSAGE);
  }
}
所以 sum 等於是宣告就直接初始化﹝初始化的數值等於 user 輸入的兩個數值相加﹞,也難怪會讓你弄糊塗了這個觀念。

SCJP蠻喜歡考這個觀念,我可以作證,因為我去考的時候就遇到好幾題相似的題目,然後問你編譯會不會過?

此文章被評分,最近評分記錄
財富:30 (by codeboy) | 理由: 恩..你說的很有道理~好答案!!


神:在多項技術領域,具有不可取代性且擁有高度權威
魔:在某項技術領域,具有不可取代性且擁有高度權威
妖:有高度實戰經驗,且在專業領域上具有domain-Knowledge
俠:在技術層面上有過人專業能力
人:可以獨立運作、設計暨開發系統
蟲:coder only (my level)
獻花 x0 回到頂端 [1 樓] From:台灣數位聯合 | Posted:2005-03-11 12:08 |
righer
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x12
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

恩 感謝大大的解答 原來如此 這樣看我就懂了~
因為我們老師教半學期的C 就要我們學JAVA
C還不太懂的說 就要學JAVA...
我還要繼續加油~

SCJP這個是什麼呀?


獻花 x0 回到頂端 [2 樓] From:台灣中華電信 | Posted:2005-03-11 16:31 |
PeterPan 手機
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 社區建設獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x1 鮮花 x99
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

SCJP 全名是 Sun Certified Java Programmer,簡單來說就是SUN的基礎程式設計認證。
要取得本項認證的程式設計人員,必須具備的能力包括使用Java 2 Platform、Standard Edition (J2SE),展示其熟悉基礎Java程式設計語言。

你的老師也許想讓你們每種語言都會一些,再自己挑一個深造吧,加油囉。


神:在多項技術領域,具有不可取代性且擁有高度權威
魔:在某項技術領域,具有不可取代性且擁有高度權威
妖:有高度實戰經驗,且在專業領域上具有domain-Knowledge
俠:在技術層面上有過人專業能力
人:可以獨立運作、設計暨開發系統
蟲:coder only (my level)
獻花 x0 回到頂端 [3 樓] From:台灣數位聯合 | Posted:2005-03-11 17:08 |
mmpo
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

java宣告不指定的話(針對的型別是int)...初使化是會自動給0

不過這個也要看版本跟設定的不同而會有所不同吧...

因為在我的電腦裡是這樣的情況,不過即然有大大說一定要人工上的初使化...我想大概是和我的電腦上的設定或版本有所不同吧

但針對選寫程式的習慣上,最好要有這個動作

sum是f1加上f2的結果......如果你不能包證sum是0的話....那相加的結果也一定會有錯誤

所以不管是不是會自動初使化成零....好的習慣應該還是一開始初使化指定其為0會比較好


獻花 x0 回到頂端 [4 樓] From:台灣中華電信 | Posted:2005-03-13 22:52 |
ooxx123
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

請問大大...
Sun Certified Java Programer
SUN是什麼意思阿   ~"~a


獻花 x0 回到頂端 [5 樓] From:台灣亞太線上 | Posted:2005-07-09 18:03 |
pbnttttt
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

SUN   就是創造出java這種程式語言的公司
ㄏㄏ 吃水果要拜樹頭  這是一定要知道的唷


獻花 x0 回到頂端 [6 樓] From:未知地址 | Posted:2005-07-13 15:02 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.015583 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言