要如何用vb寫這個程式
用if then else
if then elseif
select case
將輸入的0~9改寫成輸出國字的零到九
若輸入非0~9則輸出"無法改寫"之字元
必請加入提示句
直接寫出來的我點數就直接送他
以先寫出答案的給點數
那個 因為我初學者 所以對這個程式的概念還不熟
所以可以把宣告那些給我嗎
還有 因為我還沒學到 MSBOX 跟LABEL1 還有CAPTION
所以我不懂這些意思
可以麻煩再寫一次別種的嗎
就是請用console writeline
或是consol write
對了我是用 主控台應用程式 寫的
5 個解答
- 9 年前最佳解答
Dim w, t, y, a
a = ""
'===============先讓使用者輸入inputbox為輸入視窗
Do
w = InputBox("請輸入數字0~9")
If w = "" Then
MsgBox("不能不輸入", 16) 'msgbox為訊息視窗
End If
Loop Until w <> "" '為了以防使用者未輸入 所以當 w等於空字串出現錯誤訊息
t = False '先將T為布林值
Do '作為判斷是否超過0~9
For y = 1 To Len(w)
If Val(Asc(Mid(w, y, 1))) >= 48 And Val(Asc(Mid(w, y, 1))) <= 57 Then
'0的ASC為48 9的ASC為57 所以任何字元當超過就顯示錯誤訊息 然後重新輸入
t = True
Else
MsgBox("不能輸入除了0~9的字元", 16)
Do
w = InputBox("請輸入數字0~9")
If w = "" Then
MsgBox("不能不輸入", 16)
End If
Loop Until w <> ""
Exit For
End If
Next
Loop Until t = True
For y = 1 To Len(w) '此地方為修改0~9成國字
If Mid(w, y, 1) = "0" Then : a = a + "零"
ElseIf Mid(w, y, 1) = "1" Then : a = a + "一"
ElseIf Mid(w, y, 1) = "2" Then : a = a + "二"
ElseIf Mid(w, y, 1) = "3" Then : a = a + "三"
ElseIf Mid(w, y, 1) = "4" Then : a = a + "四"
ElseIf Mid(w, y, 1) = "5" Then : a = a + "五"
ElseIf Mid(w, y, 1) = "6" Then : a = a + "六"
ElseIf Mid(w, y, 1) = "7" Then : a = a + "七"
ElseIf Mid(w, y, 1) = "8" Then : a = a + "八"
ElseIf Mid(w, y, 1) = "9" Then : a = a + "九"
End If
Next
MsgBox(a) '輸出訊息
Me.Close()
2011-11-24 09:26:12 補充:
MsgBox(a) '輸出訊息
改
Console.WriteLine(a) '輸出訊息
Console.WriteLine("任意鍵結束")
Console.ReadKey()
2011-11-24 09:27:37 補充:
Else
MsgBox("不能輸入除了0~9的字元", 16)
Do
w = InputBox("請輸入數字0~9")
If w = "" Then
MsgBox("不能不輸入", 16)
End If
改
Else
Console.WriteLine("不能輸入除了0~9的字元")
Do
w = (Console.ReadLine())
If w = "" Then
Console.WriteLine("不能不輸入")
End If
2011-11-24 09:28:08 補充:
這
Do
w = InputBox("請輸入數字0~9")
If w = "" Then
MsgBox("不能不輸入", 16) 'msgbox為訊息視窗
End If
改為
Do
Console.WriteLine("請輸入數字0~9")
w = (Console.ReadLine())
If w = "" Then
Console.WriteLine("不能不輸入")
參考資料: 自己 - 冰封記憶Lv 69 年前
又要匿名, 又不給版本, 又沒有禮貌, 又以為點數可以當飯吃, 又以「初學者」名義諸多要求, 又不作思考就說「不懂意思」
給人的感覺就是以為這裡是免費代做功課
2011-11-23 23:18:06 補充:
003 : if num>9 or num<0 then 如果text1.text = "10" 就會掛掉
004 : Val(Asc(Mid(w, y, 1))) >= 48
ASC 回傳 Integer, 沒有再用Val 換成Double 的必要
也無需要判斷完是否為數字, 再判斷數字是0~9
2011-11-23 23:19:30 補充:
只需直接用For
Select Case Mid(x, i, 1)
case "0" '//"0"c 直接判斷每一個字元
case "1" '//"1"c
case ...
case else
call msgbox("prompt", 48, "title")
exit sub 'return 如遇到錯誤字元(非"0"c ~ "9"c 則丟出訊息, 離開副程式
end select
- 9 年前
num=text1.text
if num>9 or num<0 then
msbox"無法改寫"
else
if num=0 then
label1.caption="零"
elseif num=1 then
label1.caption="一"
...
end if
select case num
case 0
label1.caption="零"
case 1
label1.caption="一"
...
end select
end if
- 匿名使用者9 年前
回答1是打廣告的嗎??
2011-11-25 23:09:30 補充:
Function c$(ByVal n%)
Dim t$ = "零一二三四五六七八九"
Return IIf(0 <= n And n <= 9, t.Substring(n, 1), "")
End Function
- 您覺得這個回答如何?您可以登入為回答投票。