私はJavaを使い慣れておらず、簡略化されたif-else
の声明の概念を学ぼうとしています。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.
}
何かエラーがありましたか? – user3437460
結果を返さない三項を使うことはできません。この場合、 'put'から' boolean'を無視しています。 'i1 == null'、' msi1.put(s1、null) 'のようなものが期待通りに動作しない理由は単純です。これはおそらくあなたが望むものではありません。 –
私はあなた[ここ](https://stackoverflow.com/questions/35330842/ternary-operator-with-multiple-condtions-in-java-throwing-error)と[ここ](https:// stackoverflow。 com/questions/15977031/java-ternary-without-assignment)を使用します。 – Majora320