<script>
// 四个人中有一个说谎
//A说:不是我B说:是C。C说:是D。D说:C在胡说
// 令a,b,c,d 分别等于0,1,2,3
var [
a,
b,
c,
d]
= [
0,
1,
2,
3];
// 首先先循环一下,假设每个人分别说谎时的情况
for (
var
i
=
0;
i
<
4;
i
++) {
// 上面已经说过是假设每个人说谎的情况,所以i代表的就是说谎者
//A说:不是我。 i != a
//B说:是C。 i == c
//C说:是D。 i == d
//D说:C在胡说 这句话可以理解为i != d 或者 i == c
// i != 谁,就代表说谎的不是谁
// i == 谁,就代表说谎的是谁
// 最内层的每个()返回值为true或者false,题中说只有一人说谎,所以当有三个true时符合题意
if (((
i
!=
a)
+ (
i
==
c)
+ (
i
==
d)
+ (
i
==
c))
==
3) {
console
.log(
i);
//2
}
}
<
/script>