English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

這是原本的討論
http://tw.knowledge.yahoo.com/question/?qid=1206052316008
看到發問者的回應 我不知道要講啥了 也請網友提出看法
原題目如下
Private Sub From_Activate
A = 43 : B = 20
C= A \\ B : GoTo RESULT
D = A Mod B
RESULT :
Print C , D
End Sub
vb裡面不宣告變數型態也能跑出結果 是這個討論的重點
情況一 沒宣告變數型態
所以CD不宣告為整數 系統跑到那行會自動判斷integer型態 我說D是
nothing 是因為他沒被宣告且直接被跳過沒有跑 所以沒有預設值 所以是
nothing
情況二 有宣告變數型態
這部分就像你講的宣告Dim C,D As Integer此時 程式在compiler時 變數已
經被宣告且預設值為0
情況三 宣告變數 但未指定型態
簡單來說 就是 Dim C,D 如果你試過這個宣告方式 如果你會用debug的話
這種宣告 就能驗證我說程式如何自動預設成integer型態

另外我提出原發問者可以設個中斷點 是指程式debug時可以監看變數目前狀態
不會用真的看書查查 你已經寫程式五年 不會用debug中斷點 實在有點扯

ps沒有筆戰 只是覺得 程式最基本的宣告要弄清楚

2006-05-29 10:22:46 · 3 個解答 · 發問者 pj 2 in 電腦與網際網路 程式設計

3 個解答

基本上 情況一 沒宣告變數型態 跟 情況三 宣告變數 但未指定型態 是相同的(在沒有物件被命名為C或D為前提),VB都會把它們設為Variant型態Variant 一種資料型態,可以包含數值、字串或日期資料,也可以是使用者定義型態或指定值 Empty 和 Null。Variant 資料型態有 16 位元組的空間,可以包含的資料可達 Decimal 的範圍,或 22 位元組 ( 加上字串長度 ) 的字元儲存大小,而且可存放任何字元文字。VarType 函數定義了 Variant 中的各種資料型態。如果一變數沒有明確宣告其他資料型態,那麼均會變成 Variant 資料型態。實際跑跑看Print C, TypeName(D)'答案: 2   EmptyEmpty指 Variant 變數未指定起始值。這種變數在數值內容上以 0 表示,在字串內容上則以空字串 ("") 表示。但Print C, D = Nothing'則發生錯誤Nothing物件變數不再引用任何物件故應該說D是Empty而非Nothing,畢竟D並不是一個物件變數。補充一點,在VB裡面每個變數都必須確實的指定其型態,如:Dim C,D As Integer:只有D被指定為Integer,而C仍然是Variant Dim C As Integer ,D As Integer :才是CD均被指定為Integer

2006-05-29 13:10:50 · answer #1 · answered by W.J.S. 7 · 0 0

這種題目原本就不該出現,
大概所有程式設計師都會告訴你,
變數使用最好是要宣告且給預設值,
無論所使用的是什麼語言.
出這題的人我在猜想他是原本程度就不怎麼樣的人呢?
或是打算學SCJP製造出一堆考試100分, 程式一行都寫不出來的"人材"?
一般稍有程度的人不會寫出這種程式來給自己製造麻煩吧?

2006-05-29 15:16:17 · answer #2 · answered by 岔題與亂回文程度的能力 4 · 0 0

問題在於VB 6的宣告很難讓人弄清楚~"~
未經宣告的變數可以直接使用,這一點令人迷惑@@

微軟的VB.NET最後沒有這個功能就表示這個的存在並沒有很迫切的需要,事實上,大多數的程式設計師還是比較喜歡使用的變數是需要宣告的。

這一題的答案我理想中的答案應該是Error,因為變數未經初始化。

我覺得本身出這一題就是有問題,不同的語言,特性就會不一樣,但是不同的語言可以產生相同功能的程式(方法的難易度或許是不同的,但是結果相同),每一個人所擅長的程式語言是不一樣的,卻考出這種需要非常了解其語言特性的題目,我認為不洽當,除非,考試科目是VB 6.0。

2006-05-29 13:52:14 · answer #3 · answered by Phoenix 5 · 0 0

fedest.com, questions and answers