我是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.
}
Run Code Online (Sandbox Code Playgroud) 如果你写的东西如下:
boolean condition;
(...)
String out = condition ? "true" : "false";
System.out.println(out);
Run Code Online (Sandbox Code Playgroud)
有用.但如果你写
condition ? System.out.println("true") : System.out.println("false");
Run Code Online (Sandbox Code Playgroud)
你得到一个"非声明"的错误."正确"的方式是写(使用大括号或"成为或不成一行"超出了问题的范围):
if (condition)
System.out.println("true");
else
System.out.println("false");
Run Code Online (Sandbox Code Playgroud)
为什么?一行if必须总是返回一个值?
编辑:向大家指出这一点
condition ? System.out.println("true") : System.out.println("false");
Run Code Online (Sandbox Code Playgroud)
是不是一个正确的语法,是的,我得到了那一部分.我不是要求解决方案(尽管如此)
System.out.println(condition ? "true" : "false");
Run Code Online (Sandbox Code Playgroud)
很好
@Andrew Tobilko在哪里说明了什么?THAT是我很感兴趣的内容.
编辑2:接受的答案提供了我想要的.谢谢
为什么这不用Java(v1.8)计算.对我来说似乎完全符合逻辑......
boolean banana = true;
(banana == true || false) ? System.out.println("True") : System.out.println("False");
Run Code Online (Sandbox Code Playgroud)
输出消息:错误:java:不是语句