条件式と真偽値(しんぎち)
「条件分岐」や「繰り返し処理」を実現するためには、「条件式」を指定する必要があります。
その「条件式」は、評価(計算)され「真偽値(しんぎち)」を得ます。
その「真偽値(しんぎち)」を元に「条件分岐」や「繰り返し処理」が実行されていきます。
ここでは、その「条件式と真偽値(しんぎち)」がどのようなものか確認しておきましょう。
1. 条件式と真偽値
1-1. 条件
先の例でいうと、「もし、所持金が100円以上だったらアイスを買う」の「所持金が100円以上」というところが、「条件」になります。
「所持金が100円以上」という条件のほかにも、場合によっては、さまざまな条件が考えられますよね。
例えば、
所持金が100円ではない
所持金が100円未満
などなど。
これらの「条件」をプログラムで表現するには、「条件式」を使います。
1-2. 条件式
「条件式」は、「==(イコール)」や「不等号」などを使って表現します。
例えば、「所持金が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円以上あるか」という条件には「ある」か「ない」かの答えがあります。
(不明というもう一つの答えは、ここでは触れません)
この「ある」「ない」を別の言い方をすると、
「ない」→「条件を満たしていない」
と言えます。
さらに、これをプログラミング用語的に言うと、
「ない」→「条件を満たしていない」→「偽(ぎ)」
と言ったりします。
また、プログラム上での「真」「偽」は、
「偽(ぎ)」→「false」または、「0」
と表現されます。
この、「条件式」に対する答えである「tureまたは、1」「falseまたは、0」のことを「真偽値(しんぎち)」といいます。下のプログラムを実行してみてください。
所持金100円に対して所持金は100円以上あるか問うています。
// 所持金100円
let shojikin=100
// 所持金は100円以上?
print( shojikin >= 100 )
この条件は、満たされているので結果は、「真(しん)」すなわち「true」になります。
所持金50円に対して所持金は100円以上あるか問うています。
// 所持金50円
let shojikin=50
// 所持金は100円以上?
print( shojikin >= 100 )
この条件は、満たされていないので結果は、「偽(ぎ)」すなわち「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 < 2
1 > 2
1 <= 2
1 >= 1
( 100 > 10 ) && ( 100 < 100 )
( 100 > 10 ) || ( 100 < 100 )
2-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文」の使い方についてです。