Javaの ? true a:b;←これ何よと思ったので
Javaの ? true a:b;←これ何よと思ったので Javaの ? true a:b;←これ何よと思ったので 発端はLeetCode。 Javaで書くか〜と思い、書いた後に Solution で使われていたこれ。 public ListNode addTwoNumbers ( ListNode l1 , ListNode l2 ) { ListNode dummyHead = new ListNode ( 0 ) ; ListNode p = l1 , q = l2 , curr = dummyHead ; int carry = 0 ; while ( p != null || q != null ) { int x = ( p != null ) ? p . val : 0 ; // ここ int y = ( q != null ) ? q . val : 0 ; int sum = carry + x + y ; carry = sum / 10 ; curr . next = new ListNode ( sum % 10 ) ; curr = curr . next ; if ( p != null ) p = p . next ; if ( q != null ) q = q . next ; } if ( carry > 0 ) { curr . next = new ListNode ( carry ) ; } return dummyHead . next ; } ということで調べた。 三項演算子だった。 ? true a : b ; 評価式がtrueの場合、 : の左側(この場合は a )が返る、ということで、値を返すだけならば書きやすくなる。