vb中 inputbox和textbox1.text的问题

在VB中:
Dim m As Integer, i As Integer, flag As Boolean m = inputbox("请输入一个整数")
flag = True
For i = 2 To m - 1
If m Mod i = 0 Then
flag = False
Exit For
End If

Next If flag Then
TextBox2.Text = "jishu"
Else
TextBox2.Text = "oushu"
End If

这样是正确的,但是将 inputbox("请输入一个整数")换成textbox1.text或者加个val却是错误的呢?

您的代码原意是找“质数”,拼音是zhishu,不是奇数和偶数。按您的代码,如果是质数,就显示jishu,否则显示oushu。按算法,只有2、3、5、7、11、13……这些质数才会显示jishu,而9、15这些会显示oushu。
不知您说的错误是什么错误。如果是显示的jishu和oushu不是您预期的,那很正常,凑巧您输入3、5就是正确的,凑巧输入9、15就错误了。不要说您还不知道什么是质数、奇数、偶数啊。

如果是代码错误,请确认是否在窗体上放了textbox1控件,其次,由于有定义m为integer,所以val函数加不加都一样,如果加了就错,那不加一样错。您是不是用错了val函数?追问

额,对了,我搞错了。我求的是奇偶数,代码弄成了求素数。
谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-27
奇数偶数不是你那样判断的,哪有那么麻烦:

Dim m As Integer
m = val(inputbox("请输入一个整数")) '或者 m = val(TextBox1.text)
if m mod 2=0 Then TextBox2.Text = "jishu" else TextBox2.Text = "oushu"
第2个回答  2013-04-27
Dim m As Integer, i As Integer, flag As Boolean
m = val(inputbox("请输入一个整数"))
flag = True
For i = 2 To m - 1
If m Mod i = 0 Then
flag = False
Exit For
End If

Next If flag Then
TextBox2.Text = "jishu"
Else
TextBox2.Text = "oushu"
End If

追问

将 inputbox("请输入一个整数")换成textbox1.text或者加个val却是错误的呢?

第3个回答  2013-04-27
我在奇怪?
你到底是VB6 还是 VB.NET?
VB6里的文本框默认的名称 Text1

VB.NET里的文本框默认的名称才是 TextBox1追问

net

追答

无论在哪种情况下:
m = Text1.text

或者
m = TextBox1.text
都没有问题的!!!

第4个回答  2013-04-27

用text用val没问题啊。

Private Sub Form_Load()
Dim m As Integer, i As Integer, flag As Boolean
Text1.Text = Int(Rnd * 10)
m = Val(Text1.Text)
flag = True
For i = 2 To m - 1
If m Mod i = 0 Then
flag = False
Exit For
End If

Next
If flag Then
TextBox2.Text = "jishu"
Else
TextBox2.Text = "oushu"
End If
End Sub

追问

我设计的不是你那样直接系统随机赋值,而是textbox1.text应该是用户输入的值。但是这样运行的时候显示都是奇数,主要就是这个问题

追答

我懒得放控件了。。放一个text1控件然后把Text1.Text = Int(Rnd * 10)去掉就好了

相似回答