K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>if((func_hoge() == 真) && (func_piyo() == 真)) // (1) >> 実行文; >> >>if(func_hoge() == 真) >> if(func_piyo() == 真) // (2) >> 実行文; >> >>上記(1)または(2)において、func_hoge()が偽であった場合、 >>func_piyo が実行されないことは文法上保証されるのでしょうか? > >どちらについても保証されています。 > >(1)は短絡演算子というやつで、JIS X 3010:2003 (ISO/IEC 9899:1999)であれば >6.1.13に以下の記述があります。 >| ビット単位の2項&演算子と異なり,&&演算子は左から右への評価を保証する。 >| 第1 オペランドの評価の直後を副作用完了点とする。第1オペランドの値が0と >| 比較して等しい場合,第2オペランドは評価しない。 > >「||」も同様です(6.5.14 論理OR演算子より) >| ビット単位の|演算子と異なり,||演算子は左から右への評価を保証する。 >| 第1オペランドの評価の直後を副作用完了点とする。第1オペランドの値が0と >| 比較して等しくない場合,第2 オペランドは評価しない。 > >(2)はさすがにif文の動作として自明ではないでしょうか。
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!