【这个程序单可以颠倒循序写吗??】

来源:百度知道 编辑:UC知道 时间:2024/05/11 21:44:04
dim a,ctr
ctr=0 '设置计数器
const pass="pas123_" '上面的那个是弱密码, 这次改的强一点
do
if ctr=3 then
msgbox("已经达到认证上限, 认证程序关闭")
exit do
else
a=inputbox("请输入密码")
if a=pass then
msgbox("认证成功")
msgbox("(你可以在这里加一段成功后得到的信息)")
exit do
else
ctr=ctr+1 '如果密码出错就增加一次错误认证计数
msgbox("认证出错, 请检查密码")
end if
end if
loop

在这个程序里面,第一部分是写连续输错3次则认证程序将关闭,第二部分是说密码正确以后.....,第三部分是计算错误次数.我想问的是,这三部分可以颠倒写吗?为什么?
【这个程序单可以颠倒顺序写吗??】

我修改了三次 :自己把自己扰糊涂了 了~呵呵
部分可以 部分不可以
从逻辑上说是不可以颠倒的
所谓:代码首先执行顺序为 输入密码-判断密码-(错误三次退出/如果正确-执行)
从结构上说是可以部分颠倒的
所谓:代码的书写顺序还是有一定的可变行.虽然vb的代码执行顺序是从上往下依次按行解释执行.但限于某些if select等等结构语句,部分可以做适当调整.(你这里不可以)
最后结论:逻辑+结构=算法 无正确逻辑的结构是错误的.所以不能颠倒.

你代码的解释顺序;
If ctr = 3 Then '判断是否输入错误达3次

If a = pass Then '判断密码是否正确

Else
ctr = ctr + 1'如果错 记一次.

重要的
(1) 先判断 再检查密码.为什么呢?如果是先检查密码 在判断是否三次,那么在如果输错3次的情况下,系统会通过密码验证,然后再执行3次判断,这时又要因超过3次而退出 这矛盾.
(2)如果先记错次,那么意思是说不管我又没有输入密码 系统都会先给我记上一次错,在判断密码.这也矛盾.
(3)先判断是否3次,在记录加一次错,再登录 ,这同样矛盾.