java 三項演算子
分からないこと
三項演算子を使ったコードについてです。
私は102が出力されると考えていました。
テキストの解答は「false」でした。
実際にコードを実行してみると「false」と表示されました。
int a = 100;
int b = ++a;
int c = b++;
int d = ++c;
System.out.println((a < b) ? (b < c) : (c < d) ? b : c);
上記コードの実行結果は「false」です。
102が表示されるのでは?と考えた理由
4行目までを処理した結果
a=101
b=102
c=102
d=102
となる。
まずは(a < b)をみて、結果は真となる。
つぎに(b < c)をみて、結果は偽となる。
つぎに(c < d)をみて、結果は偽となる。
よって「c」の値である「102」が出力されると理解していた。
なぜfalseが出力されるのでしょうか。
教えてほしいです。
「java 三項演算子 false true」等で調べても、
falseの場合は式1をみたいな形の解説は多くあるのですが、
「false」「true」とbooleanの値が出力されることについて
解説されている記事が見つからず、こちらに質問させていただきました。