「if文」等で条件分岐を行うための「条件式」を作るために必要な「演算子」について紹介します。
「演算子」にはたくさんの種類がありますが、「条件式」に使用する「演算子」には、「関係・等価演算子」と「論理演算子」があります。
「if文」については以下のリンクで詳しく紹介しています。
1.関係・等価演算子とは
「関係演算子(大小比較)」と「等価演算子(等しいかの比較)」には以下の6種類があり、これらを使用して「条件式」を作ることができます。
A >= B:AがB以上なら
A <= B:AがB以下なら
A > B :AがBより大きければ
A < B :AがBより小さければ
A == B:AとBが等しければ(A = Bではなくイコールは2つなので注意!)
A != B :AとBが等しくなければ
2.論理演算子とは
「論理演算子」とは、複数の条件を組み合わせた結果を判定(論理演算)するときに使用する「演算子」です。
(条件式1) && (条件式2):AND条件 条件式1が成立 かつ 条件式2が成立なら
(条件式1) || (条件式2):OR条件 条件式1が成立 または 条件式2が成立なら
!(条件式1):否定条件 条件式1が成立していなければ
(1 <= A) && (A <= 3):A が 1以上 かつ 3以下なら
(A = 1) || (A=3):A が 1 または 3 なら
!( A < 3):A が 3 より小さくなければ
3.「Lチカ」プログラムで動作確認してみよう(ATOM LITE使用)
安価で高機能なマイコンボード「ATOM LITE」の「Lチカ」プログラムを使用して「演算子」を使用した「条件式」の動作確認をしてみましょう。
「ATOM LITE」については以下のリンクで詳しく紹介しています。
以下のコードを「コピペ」して書き込みを行い、動作確認をしてみてください。
以前紹介した「Lチカ」プログラムを「演算子」の確認用に改良しています。
※コピーは下コード(黒枠)内の右上角にある小さなアイコンのクリックでもできます。
#include <M5Atom.h> //Atomのヘッダファイルを準備
// FastLEDライブラリの設定(CRGB構造体)
CRGB dispColor(uint8_t r, uint8_t g, uint8_t b) {
return (CRGB)((r << 16) | (g << 8) | b);
}
// 変数宣言
int i = 0; //ifの条件確認用
// 初期設定 -----------------------------------------------
void setup() {
// 本体初期化(UART有効, I2C無効, LED有効)
M5.begin(true, false, true);
Serial.begin(9600); //標準のシリアル通信を準備
// LED全消灯(赤, 緑, 青)
M5.dis.drawpix(0, dispColor(0, 0, 0));
}
// メイン -------------------------------------------------
void loop() {
M5.update(); //本体のボタン状態更新
if (M5.Btn.wasPressed()) { //ボタンが押された時
i = i + 1; //iを+1する(i++ とも書ける)
//シリアル出力
Serial.print("i = "); //文字出力(改行なし)
Serial.println(i); //値出力(改行あり)
}
if ((1 <= i) && (i <= 3)) { //ボタンを押した回数が1~3回なら
M5.dis.drawpix(0, dispColor(0, 0, 255)); //LED(青)
} else { //1~3回でなければ
M5.dis.drawpix(0, dispColor(20, 20, 20)); //LED(白)
}
delay(100); //100ms待機
}
ボタンを押した回数を 「変数(i)」でカウントしており、ボタンを押すたびに「変数(i)」は「1,2,3・・・」と増えていきます。
「変数」については以下のリンクで詳しく紹介しています。
29行目の「if文」の「条件式」は「i が 1 以上かつ 3 以下」なので、本体のボタンを1回押すとLEDが青色に変わり、2回、3回と押しても青のままで、4回目を押した時にLEDは白になります。
29行目の「if文」の「条件式」をいろいろ変更してどのような動きになるかを確認してみましょう。
「if文」については以下のリンクで詳しく紹介しています。
「switch文」については以下のリンクで詳しく紹介しています。
変数「i」のカウント値をパソコン画面上で確認する方法は以下のリンクで詳しく紹介しています。
4.ブラウザ上で動作確認するなら
ちょっとした動作確認をしたい時は、ブラウザ上でプログラムを作成して実行できる「paiza.IO」が便利なので以下にリンクを貼っておきます。
無料で使用できて「C言語」だけでなく「python」や「JavaScript」「PHP」等たくさんの言語にも対応しています。
プログラミングの上達には学ぶことも大切ですが、自分で書いて実行して、どんな動きになるか、間違っててもいいのでこれをひたすら繰り返すことが一番の近道と思います。たくさん書いて実行してみましょう。
5.まとめ
「C言語」で「条件式」を作るときに使用する「演算子」について紹介しました。
「演算子」には「関係・等価演算子」と「論理演算子」があります。
「関係・等価演算子」には大小比較を行う「関係演算子」と、等しいかどうかの比較を行う「等価演算子」があり、これらを組み合わせて「if文」等の「条件式」を作ることができます。
「論理演算子」とは、「条件式」を組み合わせた結果を判定(論理演算)することができ、これによって「if文」で複雑な条件での分岐が可能になります。
「演算子」の理解には実際に作成したプログラムを動かして、目で見て確認すると理解が早いです。
これには安価で高機能なマイコンボード「ATOM LITE」を使用した基本の「Lチカ」が手軽でおすすめです。
本体内蔵のボタンとフルカラーLEDでいろいろな動作プログラムを作成して、理解を深めましょう。
動かして学ぶ「C言語」については、他にも以下のリンクで基礎からサンプルプログラムを使って詳しく紹介しています。
6.独学に限界を感じたら
最後に、独学に限界を感じている方へ、私のように無駄な時間を過ごさないように「C言語」や「Python」を基礎から学べるオンラインスクール(教室での受講も可)の紹介です。
私は学生の頃、独学で「C言語」を始めましたが、かなり時間をかけて結局一度挫折しました(汗)
仕事で少しプログラミングに触れる機会もあり、今となっては小規模なプログラムなら組めますが、どれだけ時間をかけたでしょう・・・
短期間で基礎から学べて質問もできる、そんな環境が当時あったらと思うと・・・
今はとても羨ましい時代になりました。
いろいろなプログラミングスクールのサイトを見て回りましたが「C言語」と「Python」の両方を扱っている所は少ないです。その中でも以下のスクールは他の言語も含めて、たくさんの講座から目的やスキルに合ったものを組合わせて、オンラインでも対面でも受講が可能です。
ほとんどの受講生が未経験で、全国に教室があるため現地で直接指導してくれますが多くの講座がオンライン対応です。
オンラインでは「個人レッスン(講師一人につき3名程)」と「集合レッスン」の選択も可能です。
オンラインレッスンの方には授業で使用するノートPC(ソフトインストール済み)も追加料金なしで貸りられて、質問掲示板を使って授業時間外でも質問できます。
無料体験もあり、説明会やカウンセリング等も行っています。
以下のリンクから内容だけでも確認してみてください。
コメント