ex) 以下を実行すると何も出力されない
false && printf(“aa”)
true || printf(“aa”)
→第一項を評価した段階で式全体の論理が確定するから第二項は評価されない
ex) 以下を実行すると”aa”が出力される
false || printf(“aa”)
true && printf(“aa”)
→第一項を評価した段階で式全体の論理が確定しないから第二項の評価に入る
詳細は以下に詳しい.
参考:
https://qiita.com/gyu-don/items/a0aed0f94b8b35c43290
参考ページにある以下の書き方は玄人っぽい.
a || doSomething()
でも残念ながら以下の書き方はできない.
a || return 0;
returnは関数でなく予約語だから.