条件式と真偽値(しんぎち)| プログラミングの砂場

プログラミング学習やタイピング練習に役立つツールを公開しているサイトです。

条件式と真偽値(しんぎち)

「条件分岐」や「繰り返し処理」を実現するためには、「条件式」を指定する必要があります。

その「条件式」は、評価(計算)され「真偽値(しんぎち)」を得ます。

その「真偽値(しんぎち)」を元に「条件分岐」や「繰り返し処理」が実行されていきます。

ここでは、その「条件式と真偽値(しんぎち)」がどのようなものか確認しておきましょう。

1. 条件式と真偽値

1-1. 条件

先の例でいうと、「もし、所持金が100円以上だったらアイスを買う」の「所持金が100円以上」というところが、「条件」になります。

「所持金が100円以上」という条件のほかにも、場合によっては、さまざまな条件が考えられますよね。

例えば、

所持金が100円と等しい
所持金が100円ではない
所持金が100円未満

などなど。

これらの「条件」をプログラムで表現するには、「条件式」を使います。

1-2. 条件式

「条件式」は、「==(イコール)」や「不等号」などを使って表現します。

例えば、「所持金が100円以上」という条件を条件式にすると、

所持金 >= 100円

となります。

「A >= B」は「AはB以上」という意味があります。

下に、よく使用される条件式をまとめておきます。

条件式 意味
A == B AとBは等しい
A != B AとBは等しくない
A < B AはBより小さい
A <= B AはB以下
A > B AはBより大きい
A >= B AはB以上

これらの条件式は、その条件が満たされるか満たされないか評価(計算)されます。

そして、その評価(計算)結果である「真偽値(しんぎち)」を得ます。

1-3. 真偽値(しんぎち)

「所持金が100円以上あるか」という条件には「ある」か「ない」かの答えがあります。
(不明というもう一つの答えは、ここでは触れません)

この「ある」「ない」を別の言い方をすると、

「ある」→「条件を満たしている
「ない」→「条件を満たしていない

と言えます。

さらに、これをプログラミング用語的に言うと、

「ある」→「条件を満たしている」→「真(しん)
「ない」→「条件を満たしていない」→「偽(ぎ)

と言ったりします。

また、プログラム上での「真」「偽」は、

「真(しん)」→true」または、「1
「偽(ぎ)」→false」または、「0

と表現されます。

この、「条件式」に対する答えである「tureまたは、1」「falseまたは、0」のことを「真偽値(しんぎち)」といいます。

下のプログラムを実行してみてください。

所持金100円に対して所持金は100円以上あるか問うています。

// 所持金100円
let shojikin=100

// 所持金は100円以上?
print( shojikin >= 100 )

この条件は、満たされているので結果は、「真(しん)」すなわち「true」になります。

true

所持金50円に対して所持金は100円以上あるか問うています。

// 所持金50円
let shojikin=50

// 所持金は100円以上?
print( shojikin >= 100 )

この条件は、満たされていないので結果は、「偽(ぎ)」すなわち「false」になります。

false

後で登場する、「if文」などの「条件分岐」に使われる命令は、あたえられた「条件式」の結果である「真偽値(しんぎち)」を見て、そのブロックを実行するべきか判断しています。

1-4. 複数の条件

条件が複数ある場合、「&&(&を2つ)」や「||(|を2つ)」を使う事によって個々の条件式をつなぎ合わせることができます。

例えば、「所持金が、10円以上かつ100円以下」や、「所持金が、50円または100円」といった条件です。

「所持金が、10円以上かつ100円以下」という条件は、「10 <= 所持金 <= 100」ということですが、プログラム上では、直接「10 <= x<= 100」という書き方ができません。

この場合、条件式を「10 <= x」と「x <= 100」の2つに分けて、それぞれを「&&」でつなぎ合わせます。

&&」には、「かつ」、「および」という意味があります。

下は、「xは10以上、かつ(および)100以下」という条件式です。

let x=50

// 「xは10以上、かつ100以下」か?
print( 10 <= x && x <= 100 )

「x」が「10 <= x <= 100」の範囲にあるとき「true(真)」となり、それ以外は「false(偽)」となります。

下は、「xは100、または50」という条件式です。

||」には、「または」という意味があります。

let x=50

// 「xは100、または50」か?
print( x == 100 || x == 50 )

「x」が50または100のとき結果は「true(真)」となり、それ以外は「false(偽)」となります。

下に「&&(&を2つ)」と「||(|を2つ)」の意味をまとめておきます。

条件式 意味
条件式A && 条件式B 条件式A かつ 条件式B
条件式A || 条件式B 条件式A または 条件式B

条件は、「&&」や「||」を使う事でいくつでもつなぎ合わせることができます。

下は、「xが10~100かつ、yが10~100」という条件です。

let x=50
let y=50

// 「xが10~100かつ、yが10~100」か?
print( x >= 10 && x <= 100 && y >= 10 && y <= 100 )

「x」「y」ともに「10 <= x <= 100」の範囲にあるとき「true(真)」となり、それ以外は「false(偽)」となります。

ただ、条件式が複雑になってくると、ぱっと見た目なにがなんだか解りにくいですよね?

そんな時は、条件式を部分的にカッコで囲えば条件式を整えることができます。

let x=50
let y=50

// 条件式にカッコをつけた
print( ( x >= 10 && x <= 100 ) && ( y >= 10 && y <= 100 ) )

カッコを付けることで、「x」が絡む条件式と「y」が絡む条件式の境界が明確になりました。

2. 試してみよう

下の条件式の評価(計算)結果は「真(true)」ですか「偽(false)」ですか?

1 == 1

1 != 1

1 < 2

1 > 2

1 <= 2

1 >= 1

( 100 > 10 ) && ( 100 < 100 )

( 100 > 10 ) || ( 100 < 100 )

2-1. 答え

1は1と等しいか
真(true)

1は1と等しくないか
偽(false)

1は2より小さいか
真(true)

1は2より大きいか
偽(false)

1は2以下か
真(true)

1は1以上か
真(true)

100は10より大きく、かつ、100は100より小さいか
偽(false)

100は10より大きい、または、100は100より小さいか
真(true)

3. まとめ

条件式の書き方を確認しまた。

条件式の評価(計算)結果は、「真偽値」になります。

その条件が満たされていれば「真(true)」です。

その条件が満たされていなければ「偽(false)」です。

条件式は、「&&」「||」でつなげることができます。


次は、「if文」の使い方についてです。


TOP