論理否定 !演算子は論理式が持っている値を0なら1へ1なら0へひっくり返します。
アレサ 「では、再び(^^)/
演算子について学んでいきます。
マックスさんたちが 山の幸を採集している間に
こちらもC言語採集しましょうよ。
!演算子は論理式のもつ真か偽の値 0か1を
0なら1へ
1なら0へ と
ひっくり返す演算子です。
つぎのプログラムをみていきましょう。
#include <stdio.h>
int main(void){
printf("%d\n", (10>1));
printf("%d\n", !(10>1));
return 0;
}
プログラムの実行結果
1
0
アレサ「このプログラムの実行結果をみてもおわかりになられますように
(10>1)の論理式(真)の値1が
!演算子により
(偽)の値0へとひっくりかえっているのがわかります。
では・・・では
論理式!(5>1&&10>1)は どのような値をもつでしょうか?
(うふっ 数学における集合では
集合{x>1かつx>5} の補集合は
{x<=1またはx<=5}
つまり
{x<=5}となりますが
それはここでは関係ないようですね。)
どうしましょう。
!(5>1&&10>1)のような論理式がもつ値を
計算するのはとても簡単です。
コンピューターにおいては
論理式は0か1の値、いずれかの値しかもたないため
論理式 5>1は真の値1をもち
論理式 10>1も真の値1をもちます。
そこで
論理式!(5>1&&10>1)は
論理式!(1&&1)
と書き直せます。
!(1&&1)の中身である
(1&&1)、(1かつ1と呼びたくなりますが正確には数学における1かつ1ではありません
(0&&1)は0かつ1と呼んだ場合
0かつ1の値をもつようにおもえてきますね
ですが
そのようなことはなく
(0&&1)は真の値1をもちます
)
は
真の値1をもつようあらかじめ設定されているので
(1&&1)=1となるので
論理式!(1&&1)=!1となり
ここで!演算子の働きにより1の値が反転し
!1=0となります。
よって
論理式!(5>1&&10>1)は0の値をもちます
これで論理式の項目の学習範囲がすべて終わりました。
明日からの
if文がとっても楽しみです。
これらの論理式の仕組みが理解できると
論理式の値が1なら 命令文を実行する
論理式の値が0なら 命令文を実行しない
のような 場合分けのプログラムが作製できるようになるんです。
シューティングゲームなら
コントローラーボタンをおすと レーザーがでる、
コントローラーボタンをおさないと レーザーがでない、
という具合に、です。
これまでよりプログラミングの幅がひろがっていくんです。
いいところまできました。
私も嬉しくなりますの。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます