永发信息网

VB 这道题可以仔细看看吗

答案:3  悬赏:50  手机版
解决时间 2021-03-14 13:15
Private Sub Form_Click()
Dim s As String, i As Integer, flag As Boolean
s = "THIS IS A BOOK"
s = LCase(s)
Print s
flag = True
For i = 1 To Len(s)
If Mid(s, i, 1) = "" Then
flag = True
ElseIf flag Then
s = Left(s, i - 1) & UCase(Mid(s, i, 1)) & Right(s, Len(s) - i)
flag = False
End If
Next i
Print s
End Sub

答案第二行是 This Is A Book
但是我VB程序执行过之后显示的是This is a book
但是我怎么感觉应该都是THIS IS A BOOK,我感觉UCase(Mid(s, i, 1))这句应该把每一个字母都变为了大写啊,还有ElseIf flag Then这句,到底是默认flag 为flase还是true ,应该是false吧
可不可以仔细讲一下
最佳答案
关键在于这句:
If Mid(s, i, 1) = "" Then
当双引号紧挨着写,中间没有空的时候,表示零长度字符串,因为每次按这条语句截取出的字符串都不会是零长度的,那么只有在字符串开头时,Flag才会是True,所以只有第一个字母被转为大写,故出现你运行的答案:
This is a book

如果写作" ",中间有一个空格时,程序每次遇到空格时,都会将Flag置为True,空格后面的字符都转为了大写,符合书上的答案:
This Is A Book
不知你和书到底谁弄错了。

至于ElseIf flag Then这行,其实等效于:
ElseIf flag=True Then
想一想,当你看到诸如
If a>b Then的时候,其实就应该理解为:
IF (a>b)=True Then
全部回答
【1】 s = Left(s, i - 1) & UCase(Mid(s, i, 1)) & Right(s, Len(s) - i) 主要是这句话,而且执行这句话的时候,i是=1,之后就flag=false就不再走入这行代码了 s="this is a book" Left(s, i - 1)=Left(s, 1 - 1)=Left(s, 0) = "" UCase(Mid(s, i, 1))=UCase(Mid(s, 1, 1)) ="T" Right(s, Len(s) - i) = "his is a book" 所以最终s="This is a book" 【2】 ElseIf flag Then 等价于 ElseIf flag = true Then
选d a)123%------%表示整型 b)123&------&表示长整型 c)&o123-----&o表示八进制转为十进制。 比如 private sub command1_click() text1.text = &o777 end sub 运先后显示511 (777)8=7*8*8+7*8+7=511 d)呵呵…………肯定是不合法的整型常数。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
关于“爸爸、妈妈我想对你说”的作文(不少于
安迪凯handicare座椅式电梯咋样?
明德书店地址在哪,我要去那里办事
鼠标的弹性大好还是小好?
手机号,所在地,姓名被坏人知道了怎么办
1、以知今年总量是42.8万公顷,比上年增长18.
老农民生鲜店这个地址在什么地方,我要处理点
我的世界舞秋风和籽岷玩过生存吗
周公解梦梦见一堆死人躺满了全用白布盖着
求一些网名,六个字的?好听的,伤感的
开封大学-人文学院地址有知道的么?有点事想
5173上传图片内存太大不能上传怎么办?
管理员工的最好方法?
比如说,木子李,口天吴,这一累的说法,有没有知
谷馍妮碧桂园店在什么地方啊,我要过去处理事
推荐资讯
小聂水暖店地址在哪,我要去那里办事
快递发货了,从安徽芜湖到张家口多长时间能到
和成熟的女孩交往要注意些什么呢
化简绝对值|a-1|—|a-2|的结果,要正确速度点
青金石会不会越戴越黑
克洛泽之前在拜仁为什么总是出现在替补席上?
热转印PCB断线,实在没分了,求大神仗义帮下
早上醒来两肋涨嘴苦咋回事
版画工具软体马莲 是一种新型的印画工具,主
QQ上面发图片怎么设置看图付费
艾莎江拌面抓饭烤肉王在哪里啊,我有事要去这
三国志13秦宜禄和杜氏是同一年登场的吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?