主控台應用程式 輸入與輸出文字
學習主控台的首要項目當然就是文字的輸出與輸入了!在Visual Basic 2008中,提供了Console類別來表示主控台應用程式的標準輸入、輸出和錯誤資料流。此外,Console無法被繼承。
輸出文字 Write、WriteLine 方法
Console提供了Write、和WriteLine兩種方法來輸出文字。
Write 方法
Write顧名思義就是"寫"的意思,意即在主控台應用程式中輸出文字。
語法格式:
Console.Write(字串)
例如:
Console.Write("Hello VB!”)
使用Write方法輸出的文字並不會自動換行,若要讓Write能換行,則必須加上換行字元「vbCrLf」。
例如:
Console.Write("Hello VB!” & vbCrLf)
WriteLine 方法
WriteLine顧名思義就是"寫一行"的意思,與Write不同的是,WriteLine輸出文字後會自動換行。
語法格式:
Console.WriteLine(字串)
例如:
Console.WriteLine("Hello VB!”)
範例題目:
設計一個主控台應用程式來顯示一首詩(如下圖)
1 2 3 4 5 6 7 8 9 10 |
Module Module1 Sub Main() Console.WriteLine("笑紅塵 慵懶先生" & vbCrLf) Console.WriteLine("傲骨雄天下,笑顏卻未歸;") Console.WriteLine("紅土黃沙去,塵灰滿天飛。") Console.Read() '讓主控台暫停,方便設計者看輸出狀況 End Sub End Module |
輸入文字 Read、ReadLine、ReadKey 方法
Console提供了Read、ReadLine、ReadKey三種方法來輸入文字。
Read 方法
Read用來讀取輸入字串字首的ASCII。
語法格式:
變數 = Console.Read()
例如:
Dim I As Integer
I = Console.Read()
不管Console.Read()輸入了多長的字串,其永遠只傳回字首的ASCII。
Read也常被用來當程式輸出運算結果後的暫停程式,用法如上面的範例題目。
Console.Read() ‘傳回值不儲存,用來暫時停止程式運行
ReadLine 方法
ReadLine用來讀取一整行的輸入文字字串。
語法格式:
變數 = Console.ReadLine()
例如:
Dim I As String
I = Console.ReadLine()
ReadKey 方法
ReadLine用來讀取使用者按下的下一個字元或功能鍵,並將其顯示出來。按下的按鍵會顯示在主控台視窗中。由於這個牽扯比較深入,所以在此暫時不檢討。常用來當做「按下任意鍵繼續」的功能。
語法格式:
Console.ReadKey()
例如:
Console.Write("按下任意鍵繼續…")
Console.ReadKey()
Write、WriteLine 如何輸出變數?
一、最原始的方法,用&字串連接的運算子
假設要輸出S這個變數,那麼…
Console.Write("S=" & S)
雖然這樣很簡單,但當變數很多的時候,就會亂成一團了,例如:
Console.Write("S=" & S & " T=" & T & " U=" & U & " V=" & V & " W=" & W & " X=" & X & " Y=" & Y & " Z=" & Z)
所以這種方法當然是最不好的。
二、使用Write、WriteLine本身的嵌入方式
Write和WriteLine,都可使用嵌入的方法,以{0},{1},{2}……來代替變數,語法格式如下:
Console.Write(“變數0={0} 變數1={1}", 編號0的變數 , 編號1的變數 )
將剛才那種土法煉鋼的式子修改一下,變成…
Console.Write("S={0} T={1} U={2} V={3} W={4} X={5} Y={6} Z={7}", S, T, U, V, W, X, Y, Z)
如何?是不是好看多了呢?
Clear 方法清除所有文字
輸出文字太多了,讓使用者看得眼花撩亂,這時可以用Clear方法來清除主控台的所有文字。
語法格式:
Console.Clear()
範例練習
設計一個主控台應用程式,能連續讓使用者輸入文字,並輸出使用者輸入的文字。輸出文字後要求使用者按下任意鍵繼續輸入文字,按下任意鍵的瞬間要清空之前所輸出的文字。如下圖:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Module Module1 Sub Main() Dim Input As String '用Input來儲存使用者輸入的文字 Do '連續輸入的Do-Loop無窮迴圈 Console.Write("請隨便輸入文字:") Input = Console.ReadLine Console.WriteLine("您輸入的文字是:{0}", Input) Console.Write("按任意鍵繼續輸入...") Console.ReadKey() '讀取任意鍵 Console.WriteLine() '跳到下一行 Loop End Sub End Module |