指定条件まで繰り返す処理についての質問です。
swの状態に応じて動作が変化します。switch~case文による処理。
case 0x08のとき、繰り返し処理を導入しようと考えています。
行ないたい処理は、
SS=1;
RR=0; という状態を、あるswの状態(0x88)まで続ける
次のコードで試してみているのですが、
case 0x08に入ることはできるのですが、
swの状態が0x88にならなくても、この繰り返し処理から抜けてしまいます。
コードの不備があると思うのですが、原因が分かりません。
教えていただけると助かります。
指定条件までの繰り返し処理について
Re: 指定条件までの繰り返し処理について
演算子の優先順位を考えると、!の方が==より先に計算されるので、
!sw、すなわち0または1を0x88と比較し、等しくないので繰り返し処理から抜けることになります。
条件式を素直にsw!=0x88にすればいいでしょう。
処理系の仕様、コーディング規約、宗教上の理由などで!=演算子が使えない場合は、!(sw==0x88)とすればいいでしょう。
それもダメな場合は…制約に応じて適当に。
!sw、すなわち0または1を0x88と比較し、等しくないので繰り返し処理から抜けることになります。
条件式を素直にsw!=0x88にすればいいでしょう。
処理系の仕様、コーディング規約、宗教上の理由などで!=演算子が使えない場合は、!(sw==0x88)とすればいいでしょう。
それもダメな場合は…制約に応じて適当に。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 指定条件までの繰り返し処理について
みけCATさま
ありがとうございます。
!(sw==0x88)とすることで解決することができました。
解説もしていただき、ありがとうございます。勉強になりました。
sw!=0x88は、コンパイラの制約? でエラーとなってしまいました。
ありがとうございます。
!(sw==0x88)とすることで解決することができました。
解説もしていただき、ありがとうございます。勉強になりました。
sw!=0x88は、コンパイラの制約? でエラーとなってしまいました。