テキストを読んでいてどうしても分からない箇所があります。
i=10;
j=5;
!i<j
i=5;
j=0;
k=-5;
i&&j||
この真偽値は何かという問題なのですが正直意味がわかりません。
誰か知恵を貸してください。
よろしくお願いします。
初心者です。
Re: 初心者です。
i = 10; j = 5; を実行したとき、
-i + j という式の値は何かという問題なら分かりますよね。
- という単項演算子により -i の値は -10 です。
+ という二項演算子により -i + j の値は -5 です。
さて、!i < j も演算子を使った式であり、値があるのです。
! という単項演算子により !i、すなわち !10 の値は 0 です。
< という二項演算子により !i < j、すなわち 0 < 10 の値は 1 です。
「! 演算子」は、オペランドの値が 0 ならば 1 を、
そうでなければ 0 を演算結果の値とします。
「< 演算子」は、左のオペランドの値が右のオペランドの値より
小さければ 1 を、そうでなければ 0 を演算結果の値とします。
結果が 0 または 1 である演算子には、
==, !=, <, <=, >, >=, !, &&, || などがあります。
1 が真を、0 が偽を表します。
この 1 か 0 の値を真偽値といいます。
0 < 10 は正しい。だから真で 1 です。
0 > 10 は正しくない。だから偽で 0 です。
! は否定を表し、!0 は 1、!1 は 0 です。
偽でなければ真、真でなければ偽ということです。
ただし、!2 も 0 です。
真偽を判定するとき、0 は偽ですが、
0 でないものはすべて真と判断します。
&& という二項演算子は、左辺が真のとき、右辺を評価し、
真偽値を決定します。
|| という二項演算子は、左辺が偽のとき、右辺を評価し、
真偽値を決定します。
i = 5; j = 0; k = -5; のとき
i は真だから、i && j は、j の値となり 0 です。
i && j が 0 で偽だから、i && j || k は、k の値を評価し、
それは 0 ではないので真、すなわち 1 となります。
理解出来たら、解決にしてください。そうでなければ、
どこが分からないのかを質問してください。
-i + j という式の値は何かという問題なら分かりますよね。
- という単項演算子により -i の値は -10 です。
+ という二項演算子により -i + j の値は -5 です。
さて、!i < j も演算子を使った式であり、値があるのです。
! という単項演算子により !i、すなわち !10 の値は 0 です。
< という二項演算子により !i < j、すなわち 0 < 10 の値は 1 です。
「! 演算子」は、オペランドの値が 0 ならば 1 を、
そうでなければ 0 を演算結果の値とします。
「< 演算子」は、左のオペランドの値が右のオペランドの値より
小さければ 1 を、そうでなければ 0 を演算結果の値とします。
結果が 0 または 1 である演算子には、
==, !=, <, <=, >, >=, !, &&, || などがあります。
1 が真を、0 が偽を表します。
この 1 か 0 の値を真偽値といいます。
0 < 10 は正しい。だから真で 1 です。
0 > 10 は正しくない。だから偽で 0 です。
! は否定を表し、!0 は 1、!1 は 0 です。
偽でなければ真、真でなければ偽ということです。
ただし、!2 も 0 です。
真偽を判定するとき、0 は偽ですが、
0 でないものはすべて真と判断します。
&& という二項演算子は、左辺が真のとき、右辺を評価し、
真偽値を決定します。
|| という二項演算子は、左辺が偽のとき、右辺を評価し、
真偽値を決定します。
i = 5; j = 0; k = -5; のとき
i は真だから、i && j は、j の値となり 0 です。
i && j が 0 で偽だから、i && j || k は、k の値を評価し、
それは 0 ではないので真、すなわち 1 となります。
理解出来たら、解決にしてください。そうでなければ、
どこが分からないのかを質問してください。
Re: 初心者です。
&& という二項演算子は、かずま さんが書きました: && という二項演算子は、左辺が真のとき、右辺を評価し、
真偽値を決定します。
|| という二項演算子は、左辺が偽のとき、右辺を評価し、
真偽値を決定します。
左オペランドが偽のとき、右オペランドを評価せず、演算結果は 0 です。
左オペランドが真のとき、右オペランドを評価し、真偽値を決定します。
|| という二項演算子は、
左オペランドが真のとき、右オペランドを評価せず、演算結果は 1 です。
左オペランドが偽のとき、右オペランドを評価し、真偽値を決定します。
Re: 解決しました。
解決にしてください、というのは、返信時に「解決!」の
チェックボックスにチェックを入れて送信してください、
という意味です。
また、件名は変更するものではありません。
最初の件名も間違っています。
「初心者です。」についての質問ではありませんよね。
他の質問と区別がつくように、内容に関係のあるものにしましょう。
質問するときは、フォーラムルールをよく読んでください。
チェックボックスにチェックを入れて送信してください、
という意味です。
また、件名は変更するものではありません。
最初の件名も間違っています。
「初心者です。」についての質問ではありませんよね。
他の質問と区別がつくように、内容に関係のあるものにしましょう。
質問するときは、フォーラムルールをよく読んでください。