AutoHotKey的是是非非

t01fdcc5ca7d25d2e79.jpg

书呆子遇上耍流氓的没法玩了!

谈到逻辑问题就像谈到了这个世界的家务事,是是非非说也说不清楚。既然讲AutoHotKey的是是非非,当然要普及一下逻辑的基本概念啦,根本上区分只有有两种逻辑:建立的逻辑和破坏的逻辑,任何逻辑都是凭空建立并且根本上无法自证的。举个简单的例子,假设1+1=2,依次推演所有四则运算法则,都是运用形式逻辑正向推演;使用辩证逻辑可对任何一道四则运算的所谓正确答题提出质疑,不论怎么质疑都会归结到质疑假设1+1=2上,于是形式逻辑等待除此之外的假设比如1+1=1之类的确立,可是辩证逻辑只管质疑不管确立假设,于是书呆子遇上耍流氓没法玩了,所以嘞理科生与文科生谈不来是有理论支持的,哈哈。

算了,文理科这事咱们先放一边,1+1的事也先扔一边,总之,在很多假设上ahk就诞生了,还有了逻辑,基本的逻辑有哪些呢?

等大小、与或非!

在上一节课中,那个复杂的逻辑表达式害我做了两遍教程啊!我痛定思痛,把逻辑表达式重新看了一遍,逻辑关系是贯穿编程始终的,非逻辑的东西目前电脑还办不到,因此逻辑思路在编程中是极为重要的!autohotkey也不例外,还是从“等”开始吧!

“等”

“等”作为比较的话,两种形式= 和 ==,啥区别呢?

用 = 比较字符串是不区分大小写的,而用 == 比较字符串是区分大小写的。

a := "abc"b := "ABC"
if (a = b)
{
    ; 条件成立
}
if (a == b)
{
    ; 条件不成立
}

#### “大”、“小”

**大于(>)**, **小于 (<)**, **大于或等于 (>=)**, 和 **小于或等于 (<=)**. 如果某个输入不是数字, 则按字母顺序比较 (加了引号的原义字符串例如 "55" 在这种情况中总是被当成是非数值的). 仅当 [StringCaseSense]打开时, 比较才区分大小写. 另请参阅: [Sort]。
大小很容易操作,几乎没什么特别的地方,这里就不深入讲解了。

#### “与”

and和&&是逻辑与的两种表达方式,例如:`x > 3 and x < 10`. 要提高性能, 则要应用求值优化. 此外, 以 AND/OR/&&/|| (或其他任何运算符) 开始的行会自动 附加到前一行的末尾

#### “或”

or和||是逻辑或的两种表达方式,其他没什么特殊的地方。

#### “非”

**!**和not是逻辑非的两种表达方式,除了优先级较低外, 其他的与 **!** 运算符相同. 例如, `not (x = 3 or y = 3)` 等同于 **!**`(x = 3 or y = 3)`.

#### 应用实例:
像 NOT/AND/OR/>/=/< 这些运算符的运算会自动产生真值或假值的结果: 真值时结果为 1 而假值时为 0\. 例如, 在下面的表达式中, 如果有一个条件为真则变量 _Done_ 被赋值为 1:

Done := A_Index > 5 or FoundIt
**重要说明**:含有表达式的 if 语句与传统的 if 语句(例如 `If FoundColor <> Blue`),可以通过单词“if”后是否有开括号来区分。尽管通常把整个表达式包围在括号中,不过也可以写成这样:`if (x > 0) and (y > 0)`。此外, 如果单词 "if" 后的第一项为函数调用或类似 "not" 或 "!" 这样的运算符时, 开括号可以完全省略 > ``` > Shift:: if (Count<1 && A_TimeSincePriorHotkey<400 && A_PriorHotkey = A_ThisHotkey) { Count++ } else { Count:=0 } if Count>0 { Run notepad Count:=0 } return

你可能感兴趣的:(AutoHotKey的是是非非)