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 展开
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 展开
展开全部
这是一种递归的算法。你自己去百度下 递归算法。
大概思路是:
n 用 static 定义后,代码运行期间都会保存,只有程序结束后才释放。
ch= mid(ch1,n,1) ,因为 n 是累加 1 的,所以 ch 也是依次等于 文本框中 某一位字符。
if 语句,判断字符是否等于 # 号,如果不等于,就继续调用自身,调用前的ch 是保留着的,当程序调用完成后返回时,ch 依然是调用前的值,调用返回后执行下一句,即 赋值语句。
自己按F8跟着程序走看看吧,看看各个变量的值的变化过程。
大概思路是:
n 用 static 定义后,代码运行期间都会保存,只有程序结束后才释放。
ch= mid(ch1,n,1) ,因为 n 是累加 1 的,所以 ch 也是依次等于 文本框中 某一位字符。
if 语句,判断字符是否等于 # 号,如果不等于,就继续调用自身,调用前的ch 是保留着的,当程序调用完成后返回时,ch 依然是调用前的值,调用返回后执行下一句,即 赋值语句。
自己按F8跟着程序走看看吧,看看各个变量的值的变化过程。
展开全部
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()'如果不到结尾就再来一遍
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()'如果不到结尾就再来一遍
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询