C言語
前回、C言語での繰り返し文 whileを学びました。
今回は条件分岐のif文を学んでいきます。
Pythonのプログラミングをしていた時にもfor文と並んで多用していた条件分岐。
もちろんですがC言語においても重要な関数になっています。
ということで始めていきましょう。
Pythonでのif文
まずはPythonでのif文を見ていきましょう。
if文として重要なのは、最初の条件分岐である「if」、さらに他の条件で分岐させたい時の「elif」、そしてそれ以外の場合の分岐「else」です。
num_list = [1, 2, 3, 4, 5]
for num in num_list:
if num == 1:
print('One')
elif num == 2:
print('TWO')
else:
print(num)
実行結果
One
TWO
3
4
5
num_listの数字を順々に取得し、条件分岐で判定をしています。
そして取得した数字が1の時を「if」で、また2の時は「elif」で、それ以外の時は「else」で分岐させています。
こんな感じで特定の条件において、特定の処理をさせることができる文がif文でした。
C言語でのif文
C言語では、最初の条件分岐は「if(条件){処理}」、さらに他の条件で分岐させたい時は「else if(条件){処理}」、そしてそれ以外の場合の分岐は「else{処理}」を使用します。
#include <stdio.h>
int main(void)
{
int i;
for(i = 1; i < 6; i++){
if(i == 1){
printf("%s\n", "One");
}
else if(i == 2){
printf("%s\n", "TWO");
}
else{
printf("%d\n", i);
}
}
}
実行結果
One
TWO
3
4
5
条件を括弧で括ることや、処理文を波括弧ことくらいが違う点でしょうか。
ということでPython使いにとってはそれほど違和感なく使うことができるかと思います。
複数条件による分岐
次に複数の条件による分岐を試してみましょう。
複数の条件とは、「AかつB」とか「AまたはB」といった2つ以上の条件が必要とされる場合のことを指します。
例えばPythonではこんな感じで書きます。
num_list = [1, 2, 3, 4, 5]
for num in num_list:
if num > 2 and num < 4:
print('Three')
elif num == 1 or num == 5:
print('One or Five')
else:
print(num)
実行結果
One or Five
2
Three
4
One or Five
「if num > 2 and num < 4:」では2より大きくて4より小さい、つまり3のことなのですが、この時には「Three」と表示する処理をしています。
また「elif num == 1 or num == 5:」で1または5の条件分岐を行い、「One or Five」を表示する処理をしました。
このようにPythonでは複数の条件で分岐させる場合は「and」や「or」を使います。
C言語の場合、かつは「&&」、またはは「||」で表現します。
#include <stdio.h>
int main(void)
{
int i;
for(i = 1; i < 6; i++){
if((i > 2) && (i < 4)){
printf("%s\n", "Three");
}
else if((i == 1) || (i == 5)){
printf("%s\n", "One or Five");
}
else{
printf("%d\n", i);
}
}
}
実行結果
One or Five
2
Three
4
One or Five
C言語の場合、二つ以上の条件を用いる時は、それぞれの条件を括弧で括るだけでなく、全体も括弧で括るのを忘れないようにしてください。
つまり「if((条件1) && (条件2)){処理}」というわけです。
これも文字が違うだけで使い方は同じなのでPython使いに取ってもそれほど混乱することはないでしょう。
一応比較表を載せておきます。
C言語 | Python | |
かつ | && | and |
または | || | or |
比較演算子
何気なく使っていましたが、数字や文字列を比較する際、比較演算子というものを使っています。
例えば同じものの場合は「==」、より大きい「>」やより小さい「<」などです。
これらは条件分岐において重要な役割をするので、しっかり覚えておきたいものです。
ちなみにC言語の場合は関係演算子ともいうようです。
まとめてみるとこんな感じです。
a == b | a と bは等しい |
a != b | a と bは等しくない |
a < b | a は bより小さい |
a > b | a は bより大きい |
a <= b | a は b以下 |
a >= b | a は b以上 |
これらの比較演算子はPythonとC言語で同じなので、特に問題ないかと思います。
これでまず必要な基礎的なことは勉強が済みました。
ただ前に今度解説しますといっていたリストの要素のサイズの取得の仕方「sizeof(str_list)/sizeof(str_list[0])」の解説が残っていますので、次回その勉強をしていきたいと思います。
ではでは今回はこんな感じで。
コメント