[总结]机房收费系统 条件判断

简介: [总结]机房收费系统 条件判断

前言:在机房收费系统中,我们遇到最多的不是bug,而是  选择!

1、if语句

(1)行if 语句(占一个语句行,没有end if )

格式

if 条件 then 语句组1 [else 语句2]
例如:
if x>0 then print x Else print –x;
(如果饿了,吃饭;[不饿,不吃,反正就是不吃饭]。
(2)块if语句(注意格式)
 If 条件then
     [语句组1]
[Else
     [语句组2]
End if 
先判断条件是否成立,成立,执行语句组1,不成立,执行语句组2.</span>
     If x>0 then 
      Print x
     Else
      Print-x
     End if 

(个人认为,块if比行if区别在,块if较复杂,要分段,有end if 。在块if中又可以嵌套,可以添加行if 或者再添加块if,块if 是一个框架。)

2、使用elseif

块 if中可以使用elseif字句,语法如下:

<span style="font-size:24px;">If 条件1 then
   [语句组1]
[Elseif 条件2 then
  [语句组2]
[Elseif 条件3] then
  [语句组3] 
……
[else
        <[语句组n]]
End if
</span>

例如

<span style="font-family: FangSong_GB2312; font-size: 18px; background-color: rgb(255, 255, 255);">等同于</span>
<span style="font-size:24px;">Sub form_click()
<span style="white-space:pre">  </span>Dim I as intenger
<span style="white-space:pre">  </span>If i=1 then
<span style="white-space:pre">    </span>Form1.show
<span style="white-space:pre">  </span>Elseif i=2 then
  <span style="white-space:pre">  </span>Form2.show
<span style="white-space:pre">  </span>Elseif i=3 then
  <span style="white-space:pre">  </span>Unload me 
<span style="white-space:pre">  </span>End if (只有一个if 对应着end if )
End sub
</span>
<span style="font-size:24px;">Sub form_click()
  If i=1 then
<span style="white-space:pre">    </span>Form1.show
<span style="white-space:pre">  </span>Else
<span style="white-space:pre">    </span>If i=2 then
<span style="white-space:pre">      </span>Form2.show
<span style="white-space:pre">    </span>Else
<span style="white-space:pre">      </span>If i=3 then
<span style="white-space:pre">        </span>Unload me
<span style="white-space:pre">      </span>End if
<span style="white-space:pre">    </span>End if
<span style="white-space:pre">  </span>End if(很多嵌套,比elseif复杂了很多)
 End sub
</span>

Elseif 的使用简化了很多嵌套,格式整齐。

3、selec case语句(用于构造多分支选择结构)

表达式

<span style="font-size:24px;">select case
  [case 表达式列表1
    [语句块1]]
  [case 表达式列表2
    [语句块2]]
  ……
  Case else
    [语句块]
End select
 </span>

Select case 语句执行时,首先计算测试表达式的值,然后用该值依次测试各个表达式列表,如果在某个列表中找到匹配的表达式,则执行该case语句之后的语句块,然后执行end select语句之后的语句。如果所有的表达式都不能匹配,执行case else后的句子。

常见形式:

<span style="font-size: 18px; font-family: FangSong_GB2312; background-color: rgb(255, 255, 255);">(1)</span><span style="font-size: 18px; font-family: FangSong_GB2312; background-color: rgb(255, 255, 255);"></span><span style="font-size: 18px; font-family: FangSong_GB2312; background-color: rgb(255, 255, 255);">单独的常量。 Case1,3,5,”a”,”b”</span>

(2)用to 制定范围。例如,case 2 to 10,”abc”to “xyz”

(3)用is指定条件。 Case is<60,is >90.

(4)前面三种混合。Case 1,3,5,10 to 20,is >60

见机房中结账时用sstab时的选择。(部分代码)

<span style="font-size:24px;">Select Case SSTab.Tab
    Case 0 '购卡
       txtsql = "select * from student_info where UserID='" & Trim(cbuserid.Text) & "'and Ischeck='未结账'"
       Set mrc = ExecuteSQL(txtsql, msgtext)
       With salecardms
      .Rows = 1
       .CellAlignment = 4
    Do While Not mrc.EOF
            .Rows = .Rows + 1
            .TextMatrix(.Rows - 1, 0) = mrc.Fields(1).Value
            mrc.MoveNext
         Loop
       End With
 </span>
<span style="font-size:24px;">Case 1 '充值
         txtsql = "select * from Recharge_info where UserID='" & Trim(cbuserid.Text) & "'and status='未结账'"
       Set mrcc = ExecuteSQL(txtsql, msgtext)
       With rechargems
           .Rows = 1
         .CellAlignment = 4
    Do While Not mrcc.EOF
           .Rows = .Rows + 1
         .TextMatrix(.Rows - 1, 0) = mrcc.Fields(1).Value
            mrcc.MoveNext
           Loop
       End With</span>
<span style="font-size:24px;">Case 2 '退卡
txtsql = "select * from CancelCard_info where UserID='" & Trim(cbuserid.Text) & "'and status='未结账'"
        Set mrccc = ExecuteSQL(txtsql, msgtext)
        With cancelcardms
           .Rows = 1
           .CellAlignment = 4
            Do While Not mrccc.EOF
           .Rows = .Rows + 1
            .TextMatrix(.Rows - 1, 0) = mrccc.Fields(0).Value
           mrccc.MoveNext
            Loop
       End With</span>
<span style="font-size:24px;">Case 3  '临时用户 等等
end select
</span>

用好if 和end if不仅是一个技术活,更是一个完整思维的体现,在敲机房利用循环的过程中,我出现了很多次“在对象关闭时不允许操作”的问题,是在对象关闭后(mrc.close)相当于释放了变量,这次查询结束,找不到内容了,不能再执行和这个记录集有关的操作。造成这个问题的一个操作就是将end if放错位置,没确定在哪里结束。

(为了不丢 end if,可以在每次都写一对(if end if),然后向其中添加内容。)

(唉唉  之前格式不对,真是对不起读者了!)



相关文章
|
9月前
|
C++
C++ 条件与 If 语句:掌握逻辑判断与流程控制精髓
C++ 中的条件语句用于根据布尔表达式的真假执行不同代码。`if` 用于当条件为真时执行一段代码,`else` 配合 `if` 在条件不成立时执行另一段代码。`else if` 允许测试额外的条件。`switch` 语句提供多分支选择。还有三元运算符 `(condition) ? expressionTrue : expressionFalse`,它是一种简写的 if...else 形式,常用于一行内作出决定。
120 0
|
5月前
|
Java
巧用枚举消除条件判断
`shigen`是一位致力于撰写博客文章的作者,记录个人成长历程,分享真知灼见,并捕捉生活中的感动瞬间。在其最新文章中,通过枚举的方式展示了如何优雅地消除if-else判断,提供了一种更为简洁清晰的代码实现方案。利用自定义的`QuestionHandlerEnum`枚举类,实现了不同情况下的逻辑处理,展示了此方法在提升代码可读性和内聚性上的优势。与`shigen`一同探索编程之美,让每一天都有所进步。个人IP:shigen。
20 0
巧用枚举消除条件判断
|
9月前
|
C语言
C语言7🔥:条件判断 if else 语句与分支(千字总结)
C语言7🔥:条件判断 if else 语句与分支(千字总结)
114 0
|
9月前
|
算法 搜索推荐 程序员
第四十三练 表达式求值
第四十三练 表达式求值
54 1
|
编译器 C++ 容器
C++的范围for语句详解 附易错实例
C++的范围for语句详解 附易错实例
162 1
|
程序员
相见恨晚的Matlab编程小技巧(2)-代码怎么做到逻辑清晰?——巧用注释符“%“
        本文将以教程的形式详细介绍Matlab中两个常用符号“%”和“%%”的作用。初学者可以通过此文掌握这两个符号的用法,为Matlab编程打下坚实的基础。
|
编译器 程序员 C语言
抽丝剥茧C语言(中阶)分支语句和循环语句(上)
抽丝剥茧C语言(中阶)分支语句和循环语句
抽丝剥茧C语言(中阶)分支语句和循环语句(下)
抽丝剥茧C语言(中阶)分支语句和循环语句
|
API Python
一日一技:巧用or关键字实现多重条件判断
一日一技:巧用or关键字实现多重条件判断
126 0
|
编译器 C语言
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)
93 0
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)

热门文章

最新文章