iT邦幫忙

0

VB 2005的String=""使用時機

各位高手你們好,我是一位剛學程式的人
因為看到書上範例不懂它的意思,在這想麻煩高手為我解答
例子如下
Dim str1 As String = "", flag As String = "Y"
Dim symbol As String
Dim i, count As Integer
Do While (flag.ToUpper = "Y")
Console.WriteLine()
Console.Write("請輸入欲顯示的符號: ")
symbol = Console.ReadLine()
Console.Write("請輸入重複的次數: ")
count = Val(Console.ReadLine())
For i = 1 To count Step 1
str1 &= symbol
Next
Console.WriteLine(str1)
Console.Write("請按 Y 或 y 繼續 ?")
flag = Console.ReadLine()
str1 = ""
Loop
Console.Read()
其中Dim str1 As String = "",這邊為什麼是變數值是空字串呢,是在什麼時機才會用這樣表式呢??
另外為什麼最後還要重新定義str1 = ""
不好意思,如果問的很笨還請大家見諒

24
fillano
iT邦超人 1 級 ‧ 2009-04-26 19:58:00
最佳解答

你看一下整個程式流程應該就可以了解了吧?(提示:最後一個跟str1變數相關的操作:str1=""是在Loop敘述之前)

至於為何初始成空字串,那當然是因為這是程式需要的阿。你看一下str1是拿來幹什麼的。

mike5201 iT邦新手 4 級 ‧ 2009-04-26 20:11:02 檢舉

一開始在定義Str1=""是因為在for迴圈裡一開始Str的值,而在另一個str1在Do...Loop中是因為當滿足條件(Y)時,需要將已跑出來的str1值清除。不知道我這樣說對嗎??

mike5201 iT邦新手 4 級 ‧ 2009-04-26 20:17:32 檢舉

訂正一下
一開始在定義Str1=""是因為在for迴圈裡一開始Str1的初始值,而在另一個str1在Do...Loop中的意義是因為當滿足條件(Y)時,需要將已跑出來的str1值清除。不知道我這樣說對嗎??

fillano iT邦超人 1 級 ‧ 2009-04-27 06:05:28 檢舉

是的,你得到他了。

16
外獅佬
iT邦大師 1 級 ‧ 2009-04-27 10:20:29

如果沒記錯的話,String預設應該也是Nothing(Null),不是空字串(""),
最好養成習慣,給變數初始值,可以避免掉許多非邏輯的錯誤。

18
不明

可以用加入中斷點的方式去看一下,str1的值比較容易理解
最後一個str1="",應該是為了要清空剛剛給的值
後面的loop回去才可以確定str1是空的

我要發表回答

立即登入回答