当前位置: 首页 > 面试题库 >

为什么我的if else语句(即?:)不起作用?

松茂实
2023-03-14
问题内容

我是Java的新手,正在尝试学习速记if-else语句的概念。

我想出了下面的代码。但是,该代码将无法编译,并在if-else(即?:)语句旁边显示错误。

有人可以告诉我为什么它不起作用吗?

对不起,如果我的问题对某些人听起来很愚蠢。我是Java新手。

在此先感谢您的帮助!

List<String> ls1 = new LinkedList<>(Arrays.asList("hello", "world", "morning", "world"));
Map<String, Integer> msi1 = new LinkedHashMap<>();

for(String s1 : ls1){
    Integer i1 = msi1.get(s1);
    i1 == null ? msi1.put(s1, i1) : msi1.put(s1, i1 + 1));//why can't I use the short if-else statement like this.
}

问题答案:

三元表达

condition ? when-true : when-false

是一个 表达式 ,而不是一个语句,因此不能在需要语句的地方使用。

您可以这样写:

msi1.put(s1, (i1 == null) ? i1 : i1 + 1);

因为这是一个声明。



 类似资料:
  • 我刚开始学C++,我试着做一个骰子游戏,用户输入一个1到6之间的数字,然后代码打印一个在这个范围内的随机数,如果y和z相同,你就赢了。 这是我的代码,但当我输入一个数组中没有的数字时,它的工作方式就好像它在数组中一样。 (输入是y)(数组是x)(你需要赢的数字是z) 此外,我可能会更改它,使它只读取数组,这样用户甚至可以放入骰子的边数,如果这样做顺利的话。

  • Stage.close()对我不起作用。 我查看了:JavaFX2.0:关闭一个舞台(窗口) 这是我的代码: 下面是调用消息框类的代码:

  • 我正在尝试检测我的两个精灵何时发生碰撞。我做的第一件事是在我的播放器周围创建一个矩形(称为player.img),然后在我想检测的树周围创建另一个矩形(称为背景.treesrect)。我将玩家矩形的坐标设置为等于当用户按下键移动时更新的坐标,但玩家矩形不移动。然后我使用精灵.碰撞(精灵)函数来检测它们是否碰撞并且没有检测到。有人可以向我展示为什么我的播放器矩形没有更新以及其他任何可能错误的内容吗?

  • 问题内容: 我在这里有点困惑。如果我将变量传递给json_decode,它将不起作用: 第一个回显正确显示了我传递的JSON字符串,例如 第二个回显显示NULL。因此,我从第一个回显中获取了字符串,并编写了以下代码: 你怎么说,它向我展示了正确解码的数组。字符串绝对相同,我什至保留转义字符。也许是问题所在? 问题答案: 看起来您的服务器已启用。无论是将其禁用或运行通过使用它之前。

  • 还不起作用。所以我放弃链接,我只是编码:

  • 我对这段代码有一个问题,因为我似乎找不到问题所在?这是我试图解决的问题:-声明并编写一个名为valid_triangle的函数,它将表示三角形三边长度的三个实数作为参数,并根据这三个长度是否能够构成三角形输出真或假。 关于三角形的以下规则: 三角形只能有正长度的边 三角形任意两条边的长度之和必须大于第三条边的长度