if(hoge&&hogehoge)の仕組みを完全に勘違いしてた件.
(Javaクイズ)
— Kodai.hs (@0918Nobita) 2016年11月11日
このプログラムをコンパイル、実行したときの結果として正しいものを選ぼう!
A. 2 が表示される
B. 3 が表示される
C. 4 が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる pic.twitter.com/USJ95SkzFr
このツイートの問題,正解は2なのだが3と答えてしまった.
gist63a74bb8890cc454ca7d8d0f8cd702d4
c++で実装してみたところ,ツイートの問題と同じ答えになった.
if文の条件式はif(hoge&&hogehoge)の場合,hogeを評価し,hogeがfalseだった場合,hogehogeは評価されずにifを抜けるそうだ. 普段生きててこんな実装はしないので勉強になった. 多分他にもこんな感じの勘違いをしているのかもしれない...