用if else 语句判断输入一个正整数的位数是多少

来源:百度知道 编辑:UC知道 时间:2024/09/28 11:50:40
Dim n As Integer = CInt(TextBox1.Text) 运行时候:输入小于0的数显示是您输入的数小于0,请输入大于0的数,输入大于0的数值只显示位1位数,怎么会事
Dim n As Integer = CInt(TextBox1.Text)
If n \ 1 < 0 Then
Label2.Text = "您输入的数小于0,请输入大于0的数!"

ElseIf 1 <= n \ 1 < 10 Then
Label2.Text = "您输入的数值为1位数"
ElseIf 10 <= n \ 1 < 100 Then
Label2.Text = "您输入的数值为两位数"

ElseIf 100 <= n \ 1 Then
Label2.Text = "您输入的数值为三位或三位以上"
End If

先给你个很简洁的答案,再告诉你为什么你的会那样。
答案:
Dim n As Integer = CInt(TextBox1.Text)
If n \ 1 < 0 Then
Label2.Text = "您输入的数小于0,请输入大于0的数!"
Else
Label2.Text = "您输入的数值为" & Len(n) & "位数"
End If
你代码的问题:
“1 <= n \ 1 < 10”这种写法是错误的,这样写,只要n>1,它只判断前一个条件(1 <= n \ 1)那么这个不等式就成立了。所以,后面的所有的判断都不再进行。
如果你非要用这种方法,那么请改为“ 1 <= n \ 1 and n \ 1 < 10 ”

要是有个100位,这样写岂不累啊

所以建议用for写