1

为什么这个语句不起作用

boolean b = (y==3-x)||(y==3)||(y=3+x);

但是这个确实

boolean b = (y==3-x)||(y==3);
        b = b || (y == x-3);

&&语句在传递的参数数量上没有问题

boolean b = x < 7 && x >= 0 && y < 7 && y >= 0;
4

2 回答 2

3

您错过了一个等号,这意味着最后一个括号分配3+xb,计算结果为int而不是boolean,因此不能用于逻辑 OR 表达式。但是,这有效:

boolean b = (y==3-x)||(y==3)||(y==3+x);
于 2013-11-29T17:38:20.737 回答
3

因为在第一种情况下

boolean b = (y==3-x)||(y==3)||(y=3+x);

你正在做的任务不是比较(y=3+x)

将其更改为:

boolean b = (y==3-x)||(y==3)||(y==3+x);

它会为你工作

但是在第二种情况下

boolean b = (y==3-x)||(y==3);
        b = b || (y == x-3);

您正在到处进行比较,这就是它对您有用的原因!

同样在第三种情况下,您正在进行比较

boolean b = x < 7 && x >= 0 && y < 7 && y >= 0;

笔记:-

==用于比较,=用于分配。

<,>,<=,>=,==都是用来比较的

于 2013-11-29T17:38:22.013 回答