回 帖 发 新 帖 刷新版面

主题:求助

想实现在subnet文本框中输入一个整数,判断这个数要等于2的次方,也就是一定要等于2,4,8.。。256,如果不等于这些数,就要等于大于最接近的数。比如输入一个9,就是2的4次方时就退出FOR循环,并且把2的4次方的值给subnet.
    下面是我的代码,但是有问题,不知道问题出现在什么地方。当subnet的值输入是1,2,3,4,5,6,7,8时都没问题,当输入9以上的值是,就出问题了。高手解决一下。
For sq = 1 To 8
If subnet.Text = 2 ^ sq Then Exit For
   If subnet.Text <> 2 ^ sq Then
      If 2 ^ sq > subnet.Text Then
      subnet.Text = 2 ^ sq
      Exit For
   End If
   end if
Next sq

回复列表 (共4个回复)

沙发

Private Sub Command1_Click()
    Dim n, m
    n = 1
    m = Val(Text1)
    If m > 0 Then
        Do While n < m
            n = n + n
        Loop
        Text2 = n
    Else
        MsgBox "输入数据不能是负数或者零!"
        Text1 = ""
    End If
End Sub
1、能用加减法解决的不要用乘除法,能用乘除法解决的不要用指数和根式
2、能不重新计算的,不要重复计算
3、功能上能方便用户的尽量不要限制用户
4、必要的纠错信息不可以省略

板凳

至于你在输入9时没有得到预期的效果,其原因在于:
If 2 ^ sq > subnet.Text Then
当sq=4时,观察下式及其结果,很是奇怪。
? 2^sq >text1,2^4>text1,2^sq >"9",2^4>"9",2^sq >9,2^4>9
    False     True        False    True    True    True
更进一步的原因,我找不出来。

3 楼

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即时网游、交友,娱乐游戏,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料http://user.qzone.qq.com/909065437/infocenter
网商咨询 摩客天宇QQ 909065437

4 楼

C易特元亨QQ919169870
最新互助式项目。
这是一个互助的模式。
不推广人也有钱赚的。分A B两个网。
不推广的人在A网。推广的人 在B网。
B网推广的人帮助A网。
A网赚取6000元出局。
B网就多了。
详情了解加QQ919169870 
  http://blog.sina.com.cn/s/blog_6b19ec920100liv6.html
C易特奖励制度 
http://blog.sina.com.cn/cyite6
C易特更多资料博客

我来回复

您尚未登录,请登录后再回复。点此登录或注册