诸如 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 中是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别