TextBox1中以#结尾的字符串,在TextBox2中相反的次序显示,这段代码是如何实现次序颠倒的?

Subrev()StaticnAsIntegerDimchAsString,ch1AsStringch1=TextBox1.Textn=n+1ch=Mid(ch1,n,1... Sub rev()
Static n As Integer
Dim ch As String, ch1 As String
ch1 = TextBox1.Text
n = n + 1
ch = Mid(ch1, n, 1)
If ch <> "#" Then rev()
TextBox2.Text = TextBox2.Text & ch
End Sub
展开
 我来答
crazy0qwer
2013-05-18 · TA获得超过3301个赞
知道大有可为答主
回答量:4020
采纳率:71%
帮助的人:1318万
展开全部
这是一种递归的算法。你自己去百度下 递归算法。

大概思路是:
n 用 static 定义后,代码运行期间都会保存,只有程序结束后才释放。
ch= mid(ch1,n,1) ,因为 n 是累加 1 的,所以 ch 也是依次等于 文本框中 某一位字符。
if 语句,判断字符是否等于 # 号,如果不等于,就继续调用自身,调用前的ch 是保留着的,当程序调用完成后返回时,ch 依然是调用前的值,调用返回后执行下一句,即 赋值语句。

自己按F8跟着程序走看看吧,看看各个变量的值的变化过程。
西南谈数码
2013-05-19 · 超过28用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:41.7万
展开全部
Static n As Integer '定义静态变量
Dim ch As String, ch1 As String '定义动态变量
ch1 = TextBox1.Text '奖text1的内容代入到ch1中
n = n + 1 ' 计数器+1
ch = Mid(ch1, n, 1) '截取TextBox1.Text从第n到n+1个字符
TextBox2.Text = TextBox2.Text & ch '将截取到的字符追加写入
If ch <> "#" Then rev()'如果不到结尾就再来一遍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式