Tag: operator keyword

为什么不提供运营商? :在scala中

有一个运营商? : ? :在Java中,可用于根据布尔表达式选择值。 例如,表达式3 > 2 ? “true” : false 3 > 2 ? “true” : false将返回一个字符串”true” 。 我知道我们可以使用if表达式来做到这一点,但我更喜欢这种风格,因为它简洁而优雅。

三元运算符中的多个条件

首先,问题是“编写一个Java程序,使用三元运算符找到三个最小的数字。” 这是我的代码: class questionNine { public static void main(String args[]) { int x = 1, y = 2, z = 3; int smallestNum; smallestNum = (x<y && x<z) ? x : (y<x && y<z) ? y : (z<y && z<x) ? z; System.out.println(smallestNum + " is the smallest of the three numbers."); } } 我尝试在三元运算符中使用多个条件,但这不起作用。 […]

在if语句中使用按位和内部

在C中,我可以写一个if语句 if (firstInt & 1) 但是当我尝试在Java中做同样的事情时,编译器告诉我“不兼容的类型”并说我需要一个boolean而不是一个int 。 有没有办法在Java中编写C代码?

在连接三元运算符的2个结果时,字符串连接在Java中无法正常工作

亲爱的Java大师! 请你解释一下,为什么串联连接在连接三元运算符的2个结果时在Java中无法正常工作? 例: String str = null; String x = str != null ? “A” : “B” + str == null ? “C” : “D”; System.out.println(x); 输出为“D”,但我预计“BC”。 由于操作员的优先考虑,我怀疑它是这样的,但我不确定,关于我们如何在上面的情况下得到“D”。 这种情况下会采用什么计算算法?

在Java中,按位AND,按位包含或问题

我在项目中有几行代码,我看不到…的价值 buffer[i] = (currentByte & 0x7F) | (currentByte & 0x80); 它从文件读取文件缓冲区,存储为字节,然后传输到缓冲区[i],如图所示,但我无法理解总体目的是什么,任何想法? 谢谢

怎么是x = 20; x = ++ x + ++ x + x ++; java中x的最终值是65

这怎么可能,因为后增量运算符应该将x增加到66? 当我为y = ++ x + ++ x + x ++做同样的事情时; 它为y给出了值65,为x给出了23。 那么让我知道java编译器如何解决这些表达式。

Java autoboxing和三元运算符疯狂

只花了几个小时调试这段代码: LinkedHashMap rsrqs = new LinkedHashMap(); Integer boxedPci = 52; Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : -1; 上面会产生一个NullPointerException。 以下代码不: LinkedHashMap rsrqs = new LinkedHashMap(); Integer boxedPci = 52; Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : Integer.valueOf(-1); 唯一的区别是用Integer.valueOf()包装-1。 一旦有人解释为什么这个代码的行为方式,我肯定我会打破我的前额..但有人可以向我解释为什么这个代码的行为方式:) – 编辑 第二个想法,我怀疑NPE来自rsrqs.get()返回null,我认为java在尝试解包成int之前,在装回一个Integer之前。 Integer.valueOf()强制Java执行unbox-box步骤。 故事的道德启示; 不要只是忽略Eclipse中的那些拳击警告;)

如何!=和==运算符在Java中使用整数?

以下代码似乎让我感到困惑,因为它提供了两个不同的输出。代码在jdk 1.7上进行了测试。 public class NotEq { public static void main(String[] args) { ver1(); System.out.println(); ver2(); } public static void ver1() { Integer a = 128; Integer b = 128; if (a == b) { System.out.println(“Equal Object”); } if (a != b) { System.out.println(“Different objects”); } if (a.equals(b)) { System.out.println(“Meaningfully equal.”); } } public static void […]

奇怪的Java行为。 三元运算符

为什么这段代码有效? Float testFloat = null; Float f = true ? null : 0f; 为什么会抛出exception呢? Float testFloat = null; Float f = true ? testFloat : 0f; 但最奇怪的是,此代码也成功运行,没有任何例外: Float testFloat = null; Float f = testFloat; 似乎Java的三元运算符改变了行为。 谁能解释为什么会这样,拜托?