Dim ch As String, I As Integer
ch = "DEF"
For I = 1 To Len(ch)
ch = Mid(ch, 2 * I - 1, 1) & Left(ch, Len(ch))
Print ch
Next I
为什么执行结果只有三行
DDEF
EDDEF
FEDDEF
终值 Len(ch) 是不变的吗?只能是3?执行当中不改变ch的值吗?
VB里面的for ...to... 中的终值 步长是不会受循环中的变化而变化吗?
答案:3 悬赏:50 手机版
解决时间 2021-02-23 21:42
- 提问者网友:眉目添风霜
- 2021-02-23 13:18
最佳答案
- 五星知识达人网友:撞了怀
- 2021-02-23 13:36
For 循环中,初始值。终止值,步长,一次定值
即在进入循环前,第1次执行For的的时候,确定,以后就不变了。
因为 ch = "DEF"
那么 Len(ch) 的值就是3,所以循环3次。
关键是我回答的第1行。
即在进入循环前,第1次执行For的的时候,确定,以后就不变了。
因为 ch = "DEF"
那么 Len(ch) 的值就是3,所以循环3次。
关键是我回答的第1行。
全部回答
- 1楼网友:鸠书
- 2021-02-23 15:50
只要进入循环,步长和终止都不会改变。只有变量能影响循环次数。
- 2楼网友:街头电车
- 2021-02-23 14:20
vb的话,他会对一些东西进行优化
可能是默认优化成
FOR I = 1 TO 3 STEP 1了
这个你做一下测试就知道了,把len(ch)用5来代替,看看会不会循环5次
另外第三次循环以后,MId()就是错误的调用了,因为2*I - 1 > len(ch)
不知道会不会在ch之前插入终止符,因为是NULL
如果是print不会打印这个值
第二种的测试方法是在循环之前用
print mid(ch ,len(ch)+1 ,1) & left(ch ,len(ch))
看看有没有返回值
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯