if分の条件分岐について


  2011-01-12 04:31:59  No: 72174

if(r>l){
//処理1
//rとlの値を変更する処理
、、、
}else{
//処理2
//rとlの値を変更する処理
、、
}

とした場合、処理1と処理2が両方実行されることはあるのでしょうか?


仲澤@失業者  2011-01-12 05:38:06  No: 72175

ありません。

(r>l)の判定は、最初の1回のみです。
その後、r とlの値が変更になっても、再度(r>l)の判定を
評価されることはありません。


  2011-01-12 08:13:35  No: 72176

if(r>l){
//処理1
//rとlの値を変更する処理
、、、
}else if(r<l){
//処理2
//rとlの値を変更する処理
、、
}
でも処理2は実行されないということですか?


ryo  2011-01-12 09:42:30  No: 72177

されない。
2個目のifは、最初のifで判定が負だったときのみに、処理される

なんでもかんでも「上から順」ではなく、
if〜else(if)は、流れが"分岐"しているので、
処理1を行った場合「else〜」の行以下、処理2も含めて、飛び越える。

頭ん中だけで考えないで、試してみれ


仲澤@失業者  2011-01-12 19:28:56  No: 72178

sさんは何がしたいのでしょうか。それを詳しく説明すると
もっとましな回答が出るかもしれません。

ちなみに、いわゆる「矛盾」をC/C++言語で表現することは
できません。これは、コンピュータプログラムは「実行順番」
と「時間経過」の概念が前提となっているため、同時性を
前提とするような論理学上の概念をコード上で表現することは
できません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加