• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[技术交流] 【院刊】-【201410期】按键里的夫妻——棒打鸳鸯引发的惨案 [复制链接]

1#

按键里的夫妻——棒打鸳鸯引发的惨案



万万没有想到……有一天居然会栽在if语句手里。





First—小编的凄惨经历
[backcolor=rgb(245, 222, 179)]



小编今早写脚本,由于无意间将if语句中的end if 错删了,弹出了这样的错误提示:

(错误码0)没有找到合法的符号。


看到这个提示,小编以为是哪个逗号不小心写成中文逗号,没成想丢了个end if也是出现这样的提示。

好在代码不多,所以错误点容易找到,那……如果,代码多达几百上千条的时候呢?眼泪马上掉出来~




[backcolor=rgb(46, 139, 87)]今天在这里和童鞋们一起来了解下,按键里的夫妻组合,看看这些夫妻被分开之后都会出现什么样的可怕情况:





Second一夫一妻制
[backcolor=rgb(245, 222, 179)]

[backcolor=rgb(46, 139, 87)]If……end if 判断语句

If判断语句,有分为两种:


1、 if语句条 (条模式)

当判断完之后,要执行的语句只有一条的时候,使用if语句条


例如:

  1. If 1 > 0 Then MessageBox"Hello~"
复制代码

// If语句条,不需要添加end if

//条模式的时候,if语句还是单身,不是夫妻组合



2、 if语句块(块模式)

当判断完之后,要执行的语句有很多条的时候,使用if语句块


例如:

  1. If 1 > 0Then
  2. MessageBox"Hello~"
  3. MessageBox"Hello~"
  4. End If
复制代码

//块模式的时候,if语句是已婚状态,夫妻组合。如果这个时候缺少了 end if

就会出现下面的错误提示:


您所在的用户组无法下载或查看附件



拓展:if语句块中 then 可以省略

例如:

  1. If 1 >0
  2. MessageBox"Hello~"
  3. MessageBox"Hello~"
  4. End If
复制代码




[backcolor=rgb(46, 139, 87)]For……next 循环语句

例子:

  1. For i=1 To 10
  2. //这里的脚本可以循环10次
  3. Next
复制代码


拓展:如果,循环体里不需要用到循环次数值,例如,需要打开十个记事本,可以这样写:

  1. For 10
  2. RunApp "Notepad.exe"
  3. Next
复制代码


for循环语句缺少next的时候,会出现下面的错误提示:


您所在的用户组无法下载或查看附件






[backcolor=rgb(46, 139, 87)]Do……Loop 循环语句

Do……Loop循环语句分为两种情况:

1、
前判断

Do While条件

Loop

在执行循环体之前判断条件,满足则进入循环不满足则不进入

例如:

  1. i=1
  2. Do While i>1
  3. i = i - 1
  4. TracePrint 1
  5. Loop
复制代码

//一次也不执行



2、后判断

Do

Loop While条件

在执行循环体之后判断条件,先进入一次循环,执行完一次循环之后再开始判断是否满足条件

例如:

  1. i=1
  2. Do
  3. i= i - 1
  4. TracePrint 1
  5. Loop While i>1
复制代码

//执行一次TracePrint1



do……loop循环语句缺少loop的时候,会出现下面的错误提示:


您所在的用户组无法下载或查看附件




[backcolor=rgb(46, 139, 87)] VBS执行块

语法

  1. VBSBegin
  2. '需要插入的VBS代码
  3. VBSEnd
复制代码


VBSBegin 缺少VBSEnd 会出现的提示:


您所在的用户组无法下载或查看附件







[backcolor=rgb(46, 139, 87)]LogStart 开始记录日志

语法

  1. LogStart 文件名
  2. LogStop
复制代码


Logstart缺少logstop 不会出现错误提示,如果忘记了logstop,蛋疼的点就是它会把你后面不需要记录的东西也记录。




[backcolor=rgb(46, 139, 87)]注释符号 /* 和 */
小编习惯用的注释符号是// ,如果喜欢使用/* */ 作为注释符的童鞋,需要注意一下:/* */注释符不支持嵌套使用

例如:

/* /* */ */


/* 缺少*/ 会出现的提示:



您所在的用户组无法下载或查看附件








Third一夫二妻制
[backcolor=rgb(245, 222, 179)]


[backcolor=rgb(46, 139, 87)]Select Case选择语句

语法:

  1. Select Case 选择条件
  2. Case 0
  3. //情况1
  4. Case 1
  5. //情况2
  6. Case Else
  7. //否则
  8. End Select
复制代码



例子1

  1. x=1
  2. Select Case x
  3. Case 1
  4. MessageBox"1"
  5. Case 2
  6. MessageBox"2"
  7. End Select
复制代码


例子2

  1. x="Hello"
  2. Select Case x
  3. Case "Hello"
  4. MessageBox"Hello"
  5. Case "Yes"
  6. MessageBox"Yes"
  7. End Select
复制代码





Select Case选择语句它是一夫二妻制度,少了Case和End Select都不行


Select Case选择语句缺少case 会出现的错误提示:


您所在的用户组无法下载或查看附件




Select Case选择语句缺少End Select会出现的错误提示:



您所在的用户组无法下载或查看附件





虽然是一夫二妻制度,老公对两个老婆的态度还是很公平的,少了谁提示都是一样的:(错误码0)没有找到合法的符号。




[backcolor=rgb(46, 139, 87)] Function 函数

Function函数也是一夫二妻制:

老公 Function 函数(参数列表)

老婆1号End Function

老婆2号 call 语句



语法:

  1. Function 函数(参数列表)
  2. //我是一个函数,被你调用了
  3. End Function
复制代码


Function函数分为两种情况:


1、 有参数传递


例子:

  1. x = "成功调用"
  2. call 输出(x) //带入参数x调用function函数
  3. Function 输出(x) //参数为x
  4. MessageBox x
  5. End Function
复制代码

// X是字符串变量,值为"成功调用" 将x作为参数调用function函数 ,x值传入function函数 。



拓展:

  1. call 输出(x)
复制代码

当我们传入function函数的值是变量的时候,我们称之为形参,也就是说这个参数是可以变化的,它根据变量值的变化而变化

  1. call 输出(5)
复制代码

当我们传入function函数的值是常量数值,我们称之为实参,也就是说这个参数是不能变化的,写了5就是5。



2、 没有参数传递


例子:

  1. call 输出()
  2. Function 输出()
  3. MessageBox "成功调用"
  4. End Function
复制代码

当function函数缺少 End Function 会出现的提示:


您所在的用户组无法下载或查看附件




当function函数缺少 call语句 会出现的提示……

嘛?忽悠谁呢?缺少call语句啥都没有提示!
素的,这算是另类的错误吧,虽然半年可能都不会出现一次,但是出现一次疼半年啊,也是需要注意的,如果几千行代码,偶然间不小心call语句弄没了,结果万般调试都没有反应,也是一件值得痛哭流涕的事儿~





[backcolor=rgb(46, 139, 87)]Sub 子程序

语法:

  1. Sub 子程序()
  2. //我是一个过程,被你调用了
  3. End Sub
复制代码

//它和function函数像是两兄弟,兄弟俩感情好到不分彼此,这不,哥哥function有个老婆叫call语句,弟弟sub也有个老婆叫call语句:

老公 :sub()

老婆1号:End sub

老婆2号:call 语句



Sub和function两兄弟,我们是经常使用的,他们的作用极其相似,sub也和function一样分为两种情况,有参数和没参数,详见上面funcation的说明,这里就不细说了。我们主要关注下他们不一样的地方,哪里不一样呢? Function支持返回值,而sub不支持。



Function返回值使用例子:

  1. x = "成功调用"
  2. 返回值= 输出(x) //带入参数x调用function函数
  3. Function 输出(x)
  4. x="改变"
  5. 输出=x
  6. End Function
复制代码

//Funcation的函数名称是用来存放返回值的。


Sub缺少end sub会出现的提示:(错误码0)没有找到合法的符号。

缺少call语句的情况参见上面的funcation,毕竟他们是兄弟~很多东西都是一样样的。






Fourth(包办婚姻)我情你不愿
[backcolor=rgb(245, 222, 179)]


[backcolor=rgb(46, 139, 87)]Goto跳转和Rem 标记/注释
说到RemGoto 就感觉到淡淡的忧伤

童鞋们都知道,跳转和标记是一对的,要一起使用对吗?

可是,Rem标记它还有另外的身份,那就是注释,它并不是只钟情于Goto而已。

所以 Rem没有了Goto是可以的,

而Goto却不能没有Rem。


那句伤感的话怎么说来着:没有了我,你还有其他人,而我只有你。可怜的Goto……

Goto缺少Rem会出现的提示:


您所在的用户组无法下载或查看附件









Last如何排错呢?
[backcolor=rgb(245, 222, 179)]

[backcolor=rgb(46, 139, 87)]排错

例如do……loop这样的,出现错误之后会直接提示你缺少了loop,如果都是这样提示那就好办了,可是如果提示的是没有找到合法符号这样的呢?

当我们在我们的代码里看不出这些夫妻组合到底谁少了谁,那说明我们的代码肯定是乱到了一种境界……

按下F4吧,按下之后你就解脱了。

(F4键是按键精灵里规范代码的快捷键,按下之后,代码立马自动排列整齐,快得很轻松的很)



下面拿if语句做个例子,一个六个if语句嵌套着:


您所在的用户组无法下载或查看附件



少了一个end if ,肉眼想要看出来很费劲。

按下F4之后:



您所在的用户组无法下载或查看附件



清晰的看到 最外层的if 少了end if


如果童鞋们对于本帖里的内容有疑问或者建议,欢迎跟帖讨论~~



本文由按键学院提供技术支持

2个月学会赚大钱的脚本,报名倒计时11天
按键学院10月实战班卷土来袭



    已有4评分我要评分查看所有评分

    本主题由 超级版主 n15976906190 于 2017/9/2 8:41:44 执行 审核主题 操作
    按键学院免费交流群:376122403

    按键学院招生计划
    按键学院系统教程
    2#

    给IU个b

    3#


    4#

    灌灌灌灌灌灌灌灌灌灌灌

    5#

    啥啥

    6#

    看个明白

    7#

    看看!!

    8#

    现在质检

    9#

    学习使我快乐

    10#

    55555555

    55555555555555

    发新话题 回复该主题