以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  代码计算结果不一致问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=16411)

--  作者:lpxjw_zyl
--  发布时间:2012/2/13 14:41:00
--  代码计算结果不一致问题

Dim Sj1,Sj2,Sj3,Sj4,Sj5 As Integer
For Each dr As DataRow In DataTables("KmSz").DataRows
    If dr("一级") <> "" Then
        Sj1 = 1
    ElseIf dr("一级") = "" Then
        Sj1 = 0
    ElseIf dr("二级") <> "" Then
        Sj2 = 1
    ElseIf dr("二级") = "" Then
        Sj2 = 0
    ElseIf dr("三级") <> "" Then
        Sj3 = 1
    ElseIf dr("三级") = "" Then
        Sj3 = 0
    ElseIf dr("四级") <> "" Then
        Sj4 = 1
    ElseIf dr("四级") = "" Then
        Sj4 = 0
    End If
    Sj5 = Sj1+Sj2+Sj3+Sj4
    Output.Show(Sj5)
Next

上述代码为什么与下面这段代码得到的结果不一样?

Dim Sj1,Sj2,Sj3,Sj4,Sj5 As Integer
For Each dr As DataRow In DataTables("KmSz").DataRows
    If dr("一级") <> "" Then
        Sj1 = 1
    ElseIf dr("一级") = "" Then
        Sj1 = 0
    End If
    If dr("二级") <> "" Then
        Sj2 = 1
    ElseIf dr("二级") = "" Then
        Sj2 = 0
    End If
    If dr("三级") <> "" Then
        Sj3 = 1
    ElseIf dr("三级") = "" Then
        Sj3 = 0
    End If
    If dr("四级") <> "" Then
        Sj4 = 1
    ElseIf dr("四级") = "" Then
        Sj4 = 0
    End If
    Sj5 = Sj1+Sj2+Sj3+Sj4
    Output.Show(Sj5)
Next

 

 

请问为什么

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


--  作者:lpxjw_zyl
--  发布时间:2012/2/13 15:20:00
--  

狐爸你看看

这是怎么了


--  作者:狐狸爸爸
--  发布时间:2012/2/13 15:31:00
--  

参考:

 

http://www.foxtable.com/help/topics/0223.htm

 


--  作者:lpxjw_zyl
--  发布时间:2012/2/13 15:59:00
--  

谢谢狐爸

看帮助没认真

是不是判断几个变量就要用几个IF函数

一个变量 可以用分支来判断


--  作者:狐狸爸爸
--  发布时间:2012/2/13 16:01:00
--  

同一个if语句,不管有多少个分支,始终都只会执行其中一个分支,所以你的第一段代码,除了前两个分支,后面都是没有意义的。