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

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

前言:在机房收费系统中,我们遇到最多的不是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),然后向其中添加内容。)

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



相关文章
|
2天前
|
C++
C++ 条件与 If 语句:掌握逻辑判断与流程控制精髓
C++ 中的条件语句用于根据布尔表达式的真假执行不同代码。`if` 用于当条件为真时执行一段代码,`else` 配合 `if` 在条件不成立时执行另一段代码。`else if` 允许测试额外的条件。`switch` 语句提供多分支选择。还有三元运算符 `(condition) ? expressionTrue : expressionFalse`,它是一种简写的 if...else 形式,常用于一行内作出决定。
34 0
|
2天前
|
C语言
C语言7🔥:条件判断 if else 语句与分支(千字总结)
C语言7🔥:条件判断 if else 语句与分支(千字总结)
24 0
|
10月前
|
C语言
学C的第六天(深入了解 分支语句 和 循环语句 )(1)
C语言:结构化的程序设计语言,支持三种结构,顺序结构、选择结构、循环结构。生活中大大小小的事件基本都可以用这三种结构来描述,这是一种高度的抽象 什么是语句?
|
10月前
学C的第六天(深入了解 分支语句 和 循环语句 )(2)
2.switch语句: switch语句也是一种分支语句,常常用于多分支的情况。 语法结构:
|
11月前
|
编译器 程序员 C语言
抽丝剥茧C语言(中阶)分支语句和循环语句(上)
抽丝剥茧C语言(中阶)分支语句和循环语句
|
11月前
|
C语言
抽丝剥茧C语言(中阶)分支语句和循环语句(下)
抽丝剥茧C语言(中阶)分支语句和循环语句
|
机器学习/深度学习 算法 Linux
分支语句和循环语句(习题集)
分支语句和循环语句(习题集)
84 0
分支语句和循环语句(习题集)
|
C语言
【C】选择(一看就懂)——if语句和switch语句
【C】选择(一看就懂)——if语句和switch语句
121 0
【C】选择(一看就懂)——if语句和switch语句
|
Go 数据安全/隐私保护 开发者
流程控制课后练习说明 | 学习笔记
简介:快速学习流程控制课后练习说明
61 0
|
C语言
c语言 分支语句和循环语句 手拉手教学
c语言 分支语句和循环语句 手拉手教学
c语言 分支语句和循环语句 手拉手教学