作者MOONRAKER (㊣OGC-1701E馬鹿5號)
看板Visual_Basic
標題Re: [建議] 新手學Visual Basic
時間Sat Oct 11 00:56:44 2008
※ 引述《nomorewords (Anego)》之銘言:
: 因為我會搞不清楚,到底那些指令什麼時候要用哪一個
: 什麼時候要用另外一個;
: 像"{0}"、console.write、console.writeline、console.read、console.readline...等
: 這些我不知道他的意思,我就搞不懂為什麼這個時候要用這個
看得出來你實在是很辛苦,這些都搞不清楚也沒有同學好問實在是
太難過了。既然你具體舉出了以上的問題,我就簡單解釋一下,你
加減看,當然以你的教材為準:
console.write: 在console(命令列視窗)印出文字,印完不換行。
console.writeline: 在console印出文字,印完會換行。
console.read: 從console讀取一個字元。
用法:X=console.read()
console.readline: 從console讀取整行,換行前所有的內容都會成為輸入。
用法:X=console.readline()
(後面這兩項我很少用,因為我寫VB程式很少碰console的東東,所以未必
正確。如果說錯請大家指正。)
{0}: 這是console.write/writeline 的格式字串。除了直接write 變數出來
以外,大部分時候總是會要附帶印出一些文字,使輸出比較容易了解。
例如我現在有個程式要計算 A*B,我已經知道A=3, B=8,於是我寫
C=A*B
console.writeline(C)
這樣執行之後就會印出個24,但是除非你本人在旁邊,否則別人很難知
道這程式是幹嘛的,你自己幾個月後可能也不記得。比較好的方法是印
出"3*8=24"這樣就一目了然了。
我想到的第一個方法是用console.write 來一直輸出,因為不換行,每
次輸出的東西會在同一行上。於是我寫
Console.Write(A)
Console.Write(" * ")
Console.Write(B)
Console.Write(" = ")
Console.WriteLine(C)
這樣的輸出就是3 * 8 = 24,可是實在很麻煩,簡單的一條就要寫到五行,
那如果我要印的是"(X+1)*(X^2+X+1)" 這樣要幾行?
另外一個方法是用 & 接起來:
Console.WriteLine(A & " * " & B & " = " & C)
這種方法的缺點是程式很難看。在IDE裡面是有彩色所以看得很清楚,在這
裡沒標顏色,上面那行到底是什麼鬼,一眼也看不出來。
所以最後就有格式字串的設計。一樣要印出 3*8=24,我可以寫:
console.writeline(string.format("{0} * {1} = {2}", A, B, C))
這條執行的時候,VB會去找主字串後面剩下的參數。主字串後的第一個參
數,對應到 {0},第二個對應到 {1},以此類推,在這裡就是
{0} 對應到 A
{1} 對應到 B
{2} 對應到 C
VB就自動把A, B, C插到{0}, {1}, {2}的位置上,所以最後會得到跟上面
一樣的輸出。
這也可以用於字串;你可以試試看這樣
dim name as string, kanji as string
console.write("請給我一個名字! ")
name=console.readline()
console.write("再請您給我一個國字! ")
kanji=console.readline()
console.writeline("謝謝!聽說{0}快要{1}了。", name, kanji)
這種用法的另一個好處是很容易設定數字格式,不過那等你用到再說了。
你可以把你的程式貼上來,說清楚問題所在,比較容易幫你。
不然搞不清楚狀況,大家要幫也無從幫起…
--
BATCH 03 : 買張床 - 切達大俠 - 伐木人之歌 -
http://tinyurl.com/3zpyx5
[B4準備中]: 謳歌金錢(7/02) - 單車超人(7/23) -
http://tinyurl.com/66v6vq
[ 番外篇 ]: 包租婆也有過當羅莉的時候(7/17) -
http://tinyurl.com/6j4ale
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
■ 蒙帝派松正體中文計畫 ■ Spam-a-lot and enjoy the pythonesque delight!
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ http://www.youtube.com/user/JamesBondXD▄▄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.204.180
推 nomorewords:謝謝你的解釋,讓我終於了解了這些大概在寫什麼!!! 10/13 20:40
→ nomorewords:那我可以請你推薦一些有關這一方面的書給我嗎? 10/13 20:43
→ MOONRAKER:你要問別人啊~ 我學VB難得看書的 都是by nature (?) 10/14 00:41
※ 編輯: MOONRAKER 來自: 59.120.168.228 (01/06 16:01)