Basic Operators
Inspect one language lane at a time so line-level text and code deltas stay readable.
Diff Lane
English
0 modified sections0 code block delta0 anchor delta
Diff Lane
中文
1 modified sections0 code block delta0 anchor delta
modified逻辑操作符code
v1.0.5
Section Text
1
仓颉编程语言支持三种逻辑操作符:逻辑非(`!`)、逻辑与(`&&`)、逻辑或(`||`)。2
3
逻辑非(`!`)是一元操作符,它的作用是对其操作数的布尔值取反:`!false` 的值等于 `true`,`!true` 的值等于 `false`。4
5
<!-- compile -->6
7
8
逻辑与(`&&`)和逻辑或(`||`)均是二元操作符。对于表达式 `expr1 && expr2`,只有当 `expr1` 和 `expr2` 的值均等于 `true` 时,它的值才等于 `true`;对于表达式 `expr1 || expr2`,只有当 `expr1` 和 `expr2` 的值均等于 `false` 时,它的值才等于 `false`。9
10
<!-- compile -->11
12
13
逻辑与(`&&`)和逻辑或(`||`)采用短路求值策略:计算 `expr1 && expr2` 时,当 `expr1=false` 则无需对 `expr2` 求值,整个表达式的值为 `false`;计算 `expr1 || expr2` 时,当 `expr1=true` 则无需对 `expr2` 求值,整个表达式的值为 `true`。14
15
<!-- run -->Code 1 · cangjie
1
var a: Bool = true // a = true2
var b: Bool = !a // b = false3
var c: Bool = !false // c = trueCode 2 · cangjie
1
var a: Bool = true && true // a = true2
var b: Bool = true && false // b = false3
var c: Bool = false && false // c = false4
var d: Bool = false && true // d = false5
6
a = true || true // a = true7
b = true || false // b = true8
c = false || false // c = false9
d = false || true // d = trueCode 3 · cangjie
1
func isEven(a: Int64): Bool {2
if((a % 2) == 0) {3
println("${a} is an even number")4
true5
} else {6
println("${a} is not an even number")7
false8
}9
}10
11
12
main() {13
var a: Bool = isEven(2) && isEven(20)14
var b: Bool = isEven(3) && isEven(30) // isEven(3)返回值是false, b 值为false,无需对isEven(30)求值15
16
a = isEven(4) || isEven(40) // isEven(4)返回值是true, a 值为true,无需对isEven(40)求值17
b = isEven(5) || isEven(50)18
}v1.1.0
Section Text
1
仓颉编程语言支持三种逻辑操作符:逻辑非(`!`)、逻辑与(`&&`)、逻辑或(`||`)。2
3
逻辑非(`!`)是一元操作符,它的作用是对其操作数的布尔值取反:`!false` 的值等于 `true`,`!true` 的值等于 `false`。4
5
<!-- compile -->6
7
8
逻辑与(`&&`)和逻辑或(`||`)均是二元操作符。对于表达式 `expr1 && expr2`,只有当 `expr1` 和 `expr2` 的值均等于 `true` 时,它的值才等于 `true`;对于表达式 `expr1 || expr2`,只有当 `expr1` 和 `expr2` 的值均等于 `false` 时,它的值才等于 `false`。9
10
<!-- compile -->11
12
13
逻辑与(`&&`)和逻辑或(`||`)采用短路求值策略:计算 `expr1 && expr2` 时,当 `expr1=false` 则无需对 `expr2` 求值,整个表达式的值为 `false`;计算 `expr1 || expr2` 时,当 `expr1=true` 则无需对 `expr2` 求值,整个表达式的值为 `true`。14
15
<!-- run -->Code 1 · cangjie
1
var a: Bool = true // a = true2
var b: Bool = !a // b = false3
var c: Bool = !false // c = trueCode 2 · cangjie
1
var a: Bool = true && true // a = true2
var b: Bool = true && false // b = false3
var c: Bool = false && false // c = false4
var d: Bool = false && true // d = false5
6
a = true || true // a = true7
b = true || false // b = true8
c = false || false // c = false9
d = false || true // d = trueCode 3 · cangjie
1
func isEven(a: Int64): Bool {2
if((a % 2) == 0) {3
println("${a} is an even number")4
true5
} else {6
println("${a} is not an even number")7
false8
}9
}10
11
main() {12
var a: Bool = isEven(2) && isEven(20)13
var b: Bool = isEven(3) && isEven(30) // isEven(3)返回值是false, b 值为false,无需对isEven(30)求值14
15
a = isEven(4) || isEven(40) // isEven(4)返回值是true, a 值为true,无需对isEven(40)求值16
b = isEven(5) || isEven(50)17
}