Tag: 运算符

如何在JAVA中使用NOT运算符作为整数

如何在JAVA中使用NOT运算符作为整数 当我把NOT运算符(!)它显示一个错误包com.learnJava.first; public class LogicalOpTable { public static void main(String[] args) { int p,q; System.out.println(“P\t Q\t AND\t OR\t XOR\t NOT\n”); p = 1; q = 1; System.out.println(p+ “\t ” + q + “\t ” + (p&q) + “\t ” + (p|q) + “\t ” + (p^q) + “\t ” + !p ); p = 1; […]

请解释为什么17%40 = 17

我是Java的新手,实际上是编程。 我知道模数运算符(%)返回两个数的余数,但是,我不明白为什么17%40 = 17。 据我所知,40%17 = 6,17%5 = 2,40%5 = 0.我得到了剩下的返回值的要点。 但是17%40 = 17让我难过。 我可以设计的唯一合理化是,由于余数小于1,所以返回总值17,为什么不是0? 请帮我解释这个谜。

在java中,为什么前缀增量或减量运算符在字节的情况下不需要强制转换

在java假设我有以下代码片段 byte b = 127; b=-b ;//(which require a cast due to numeric promotion) b=++b; //does not require cast

Java中的StringIndexOutOfBounds

我在这里有两个完全代码的副本,除了一个在for循环中有'<'而另一个有'<='。 有人可以解释为什么当我使用'<='时我得到索引超出范围的异常,但是它可以正常使用'<' 错误代码: for(int i = 0; i <= str.length(); i++) { int count = 0; char currentChar = str.charAt(i); for(int j = 0; j <= str.length(); j++) { if (currentChar == str.charAt(j) ) { count++; 工作代码: for(int i = 0; i < str.length(); i++) { int count = 0; char currentChar = str.charAt(i); for(int […]

为什么我的java if语句不起作用并给我这个错误:“二元运算符’&&”的错误操作数类型?

我有这个代码: int i; for (i = 0; i < 13; ++i) { if (hand[i].charAt(0) == 'A' || 'B' && hand[i].charAt(1) == 'C') System.out.println(hand[i]); } 基本上我想要做的是如果每个数组元素中索引0处的字符是A或B,并且每个数组元素中第二个索引处的字符是C,我希望打印这些元素。 它适用于一个字符,但是当我把它放在第一部分时,它给了我这个错误:“二元运算符的错误操作数类型’&&’”。 我该如何解决这个问题? 谢谢。

Java | =运算符问题

我需要有关这个奇怪的运算符的帮助|= 。 你能解释一下这段代码的作用吗? @Override public boolean addAll(Collection c) { boolean result = false; for (E e : c) { result |= add(e); } return result; }

用add运算符理解java字符串

我试图了解编译器如何查看以下print语句。 这很简单但有点吸引人。 这将打印添加的值。 足够令人信服。 的System.out.println(1 + 2); //输出:3 以下输出看起来也很有说服力: System.out.println(1 + 2 +“3”); //输出:33 我的问题(基于上述行为)就在这里。 System.out.println(“1”+ 2 + 3); //应该是15对吗? 没有。 这是123。 我尝试了其他一些类似的陈述。 我能够看到两个明确的行为。 如果整数位于前面而没有引号,则会添加它们,并且后续整数仅作为后缀添加到前面添加的值中。 如果语句以字符串开头,则在引号下,则所有其他后续元素将作为后缀附加。 这是java api文档中的某个地方吗? 或者只是非常明显的字符串或添加操作员行为,我没有看到。 任何您宝贵的见解将不胜感激。 这是代码片段: public static void main(String[] args) { System.out.println(1+2); System.out.println(1+2+”3″); System.out.println(“1″+2+3); System.out.println(“1″+2+”3”); System.out.println(“1″+2); } // The Console output: // 3 // 33 // 123 // 123 […]

前/后递增/递减和操作员订单混淆

我正在进行一些练习,但我对此感到困惑: public static int f (int x, int y) { int b=y–; while (b>0) { if (x%2!=0) { –x; y=y-2; } else { x=x/2; b=bx-1; } } return x+y; } b=y–的目的是什么? 那么,例如,当我们第一次进入while循环时, x=5和y=5 ( while (b>0) ) b = 4或5? 当我在我的电脑中运行代码时, b是5.而且返回的是3.我真的不清楚。 对不起,我的问题不清楚。

为什么op-assign运算符在java中不安全?

我不确定问题的措辞是否明确,但一个例子会更清晰。 我发现它在Java中不起作用: int a = …; a = 5.0; 但这会: int a = …; a += 5.0; 即,似乎=运算符是类型安全的,但+ =不是。 这有什么深刻的理由,还是设计师必须采用的另一种任意决策语言。

Java和C ++运算符之间有什么区别吗?

如果你使用Java的原始数字类型,加上布尔值,并将它与C ++等效类型进行比较,那么运算符有什么区别,例如优先级规则或位操作运算符的作用是什么? 还是括号的影响? 问另一种方法,如果我使用Java表达式并尝试在C ++中编译并运行它,它是否总是编译并始终给出相同的结果?