つい最近C言語を勉強し始めたのですが、分からないことがあったので投稿させていただきました。
上記のものなら 0(偽) と正しく出るのですが...。
これだと何故か 1(真) と出てきます。
||を&&に変えると 0(偽) と正しく出てきます。
とくに意味はなく、これはこうしなきゃいけないといったルールみたいなものなのでしょうか?
分からなくて困っているので教えていただけると助かります...T_T
コンパイルは paiza.IO というオンラインコンパイラを使用しています。
論理演算子について
Re: 論理演算子について
オフトピック
3行目の戻り値の型intと,5行目の末尾にセミコロンが足りませんが,そこをおぎなった上で以下を書いています。
また,Cの話なので論理値は1と0で表すべきですが,説明上true(真)とfalse(偽)で表しています。
また,Cの話なので論理値は1と0で表すべきですが,説明上true(真)とfalse(偽)で表しています。
- true || true => true
- true || false => true
- false || true => true
- false || false => false
- true && true => true
- true && false => false
- false && true => false
- fales && false => false
- !true => false
- !false => true
まず,演算時の変数の値から,
- b == 0 => false : 偽
- b == 1 => true : 真
最初の式は, です。 ですから,結果は偽になり,0と出力されます。
2番目の式は, です。 ですから,結果は真となり,1と出力されます。
3番目の式は, です。 ですから,結果は偽になり,0と出力されます。
最初の式と3番目の式は,ド・モルガンの法則で関係付けられます。
- 式 (!(A && B)) と 式 (!A || !B) は等しい
- 式 (!(A || B)) と 式 (!A && !B) は等しい
- Bobchanpon
- 記事: 3
- 登録日時: 5年前
Re: 論理演算子について
論理演算子の真偽値なんてものがあるんですね!おかげで理解することができました!
丁寧に説明していただきありがとうございました!!
丁寧に説明していただきありがとうございました!!