诸如 NOT(!)、AND(&&) 等运算符在 java 中是如何工作的?
Posted
技术标签:
【中文标题】诸如 NOT(!)、AND(&&) 等运算符在 java 中是如何工作的?【英文标题】:how does Operators such as NOT(!), AND(&&) etc work in java? 【发布时间】:2017-06-17 17:49:22 【问题描述】:请帮助我,我无法弄清楚运算符(AND、NOT、XOR 、..ETC)在 java 中是如何工作的。我知道 AND 和 OR 的输出,但我对 NOT 一无所知。例如,我不完全理解变量!= 整数(i!= 3)之类的语句。我的意思是 NOT 运算符是如何工作的。例如,这里的 NOT 是如何工作的。
class Demo
public static void main(String args[]) throws java.io.IOException
char ch;
do
System.out.print("Press a key followed by ENTER: ");
ch = (char) System.in.read(); // get a char
while (ch != 'q');
【问题讨论】:
在您的情况下,您循环直到 ch 输入不等于q
这就是 !=
的意思
那是“不等于”运算符。 “非”运算符是“!”你知道数字不等于 3 意味着什么吗?
哦,好吧。这是否意味着如果 (i != 3) 意味着 3 不等于 i。当谈到整数时,我不明白这个概念。
对不起,我是编程新手,有些东西我不明白
@ChrisJohn 别担心,一开始大家都是初学者,所以别担心
【参考方案1】:
如果你做了一些系统输出,你会发现:
char ch = 'l';
System.out.print(2 != 3);
--true, they are not equal
System.out.print('q' != 'q');
-- false, they are equals
System.out.print(ch != 'q');
-- true, they are not equals
这意味着,!=
检查它们是否完全相同(注意在这种情况下用于原始类型,例如 int、char、bool 等。此运算符在对象中的工作方式不同,例如 String)
【讨论】:
'q'
是 char
,而不是 String
。
@molbdnilo 你说得对,我刚刚在编辑
@Aominè 也对,我读得很快,并没有注意到简单的引号'q',我以为是“q”,非常感谢
System.out.print(ch != 'q'); -- 是的,他们是平等的....这怎么会变成真的 ch is 1 right..so..
@ChrisJohn 啊!你发现我的错误,看,这是故意的,所以我在测试你(不,那是个玩笑!哈哈,这是我的错误)他们不等于【参考方案2】:
int x = 4;
int y = 5;
!case a
表示不区分大小写
x == y
表示 x 和 y 引用内存中的同一位置(要了解其含义,请参阅 this question)。
x != y
与上面相反,和写!(x == y)
一样(不是x等于y)
case a && case b
And 运算符 - case a 和 case b 都为真。
case a || case b
或运算符 - 情况 a 或 情况 b 均为真。
这里是相同的例子,所以一切都更清楚:
1==1 // true, as 1 is equal to 1
2==1 // false, as 1 is not equal to 2.
!true // false, as not true is false.
1!=1 // false, as 1 is equal to one.
!(1==1) // The same as above - exact same output.
// You need the brackets, because otherwise it will throw an error:
!1==1 // Error - what's '!1'? Java is parsed left-to-right.
true && false // false - as not all cases are true (the second one is false)
true || false // rue - as at least one of the cases are true (the first one)
【讨论】:
【参考方案3】:!运算符是一元的。当应用于布尔值时,它会切换,例如
bool on = true;
System.out.print(!on); //false
System.out.print(on); //true
在等号旁边使用时,它会检查值是否不相等。如果它们不相等,则返回 true。否则,它返回 false。例如,
int two = 2;
int three = 3;
System.out.print(two != three);
//returns true, since they are not equal
System.out.print(two == three);
//returns false, since they are not equal
【讨论】:
"!
运算符是二进制的。"其实是一元运算符docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.htmldocs.oracle.com/javase/specs/jls/se8/html/…
"当 [!
is] 与等号一起使用时" 有些人可能会误解这意味着 !=
包含两个标记或两个连接的运算符,但事实并非如此。 !=
是单个运算符并被解析为单个 Java 令牌。
"就像&&
和||
,!
运算符是一元的。" &&
和 ||
运算符不是一元的。 !=
也不是。也不是==
.以上是关于诸如 NOT(!)、AND(&&) 等运算符在 java 中是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章