回 帖 发 新 帖 刷新版面

主题:.NET高手进来踩一脚~~~,新手求教!!!

大家好,新手学vb.net遇到的问题。设计一个登陆FORM界面,想实现这样的算法:给用户N次机会,如果用户名或密码错误,则提示MSGBOX(N-1),直到N=0,自动退出程序,可是本人初学编程,在判断和循环之间搞不清谁该嵌套谁,或者我应该设个全局变量???跪求高手指点!!!

回复列表 (共9个回复)

沙发

设一个静态变量
Static PassTime As Integer
如果username、password错误,PassTime = PassTime + 1
MessageBox显示的值是(N - PassTime)
如果N = Passtime那就退出程序

板凳

回2楼的,可是我想用for或while循环来实现它,怎么能让它每次只循环一次呢??希望能给出详细代码,再次拜谢了~~~

3 楼

Dim i As Integer
For i = N To 1 Step -1
    If 输入正确 Then
        Exit For
    End If
    MsgBox(CStr(i-1) & "times remain.")
Next i

4 楼

3楼的,你给出的算法自己试过吗,不行的啊,始终是在一个循环里,没出来,难道没有人做过类似的FORM吗??

5 楼

我当然试过了,怎么不行?

输入正确的时候就会离开for循环。

6 楼

可是我也试了,怎么不行啊?如果输入错误了,就一直在循环,退不出来啊?

7 楼

dim LeftTime as integer = 你的限定次数
上面定义为全局变量

dim i as integer
if LeftTime > 0 then
    if i < 你的限定次数 then
        if 你的判定条件成功 then
             MsgBox("操作成功",MsgBoxStyle.Excution, ApplicationName)
        else
                LeftTime = LeftTime  - 1
                MsgBox(LeftTime ,MsgBoxStyle.Excution, ApplicationName)
                exit sub
         end if
     else
                MsgBox("可用次数用完",MsgBoxStyle.Excution, ApplicationName)
                me.closed()
     end if

   end if

8 楼

把i定义在循环外面就得

9 楼

不懂啊

我来回复

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