動かして学ぶC言語「演算子(条件式)」(関係・等価演算子、論理演算子)

C言語:演算子条件式

「if文」等で条件分岐を行うための「条件式」を作るために必要な「演算子」について紹介します。

「演算子」にはたくさんの種類がありますが、「条件式」に使用する「演算子」には、「関係・等価演算子」と「論理演算子」があります。


「if文」については以下のリンクで詳しく紹介しています。

動かして学ぶC言語「if文(条件分岐)」の使い方を基本から詳しく紹介
「C言語」の「if文」について紹介します。「if文」は条件によって実行するプログラムを分岐させたい時に使用します。 基本の書き方や使い方を「Lチカ」プログラムで実際に動かしながら楽しく学びましょう♪
スポンサーリンク

1.関係・等価演算子とは

「関係演算子(大小比較)」と「等価演算子(等しいかの比較)」には以下の6種類があり、これらを使用して「条件式」を作ることができます。

・「A」と「B」2つの値の比較を行う「演算子」を使用した「条件式」
 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」の二つの条件について判定(論理演算)を行う
 (条件式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」については以下のリンクで詳しく紹介しています。

ATOM LITE プログラミング初心者におすすめ超小型で高機能!
マイコンボードはRaspberry Pi、Arduino、M5Stack等がありますが、一通りやってみてそれぞれの良さはあるものの「最初に何を?」と聞かれたら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・・・」と増えていきます。

「変数」については以下のリンクで詳しく紹介しています。

動かして学ぶC言語「変数」について、正しく学ぶならC言語が一番
「変数」とはプログラム内のデータを保存しておくために使用します。 データを入れておく箱のようなもので、一時的にデータを入れておき、必要な時に取り出して使用したり、取り出して加工(演算等)してから元に戻して、また必要な時に使用したりします。

29行目の「if文」の「条件式」は「i が 1 以上かつ 3 以下」なので、本体のボタンを1回押すとLEDが青色に変わり、2回、3回と押しても青のままで、4回目を押した時にLEDは白になります。

29行目の「if文」の「条件式」をいろいろ変更してどのような動きになるかを確認してみましょう。

「if文」については以下のリンクで詳しく紹介しています。

動かして学ぶC言語「if文(条件分岐)」の使い方を基本から詳しく紹介
「C言語」の「if文」について紹介します。「if文」は条件によって実行するプログラムを分岐させたい時に使用します。 基本の書き方や使い方を「Lチカ」プログラムで実際に動かしながら楽しく学びましょう♪
「if文」を使うと条件式の組み合わせによって、様々な動作を実現することができます。
しかし、「if文」では一つの条件で「真」か「偽」の分岐しかできません。これだけでは複雑な動作を実現するのは困難なので「C言語」には一つの条件で複数の分岐を行う「switch文」というものがあります。

「switch文」については以下のリンクで詳しく紹介しています。

動かして学ぶC言語「switch文(複数条件分岐)」の使い方を基本から詳しく紹介
C言語のswitch文について紹介します。 switch文は一つの条件に対して複数の処理に分岐したい時に使用されます。if文では変数や条件式を組み合わせた分岐に向いていますが、swich文では変数が複数の値を持つ場合の分岐に向いています。

変数「i」のカウント値をパソコン画面上で確認する方法は以下のリンクで詳しく紹介しています。

シリアル(UART)出力で内部データの表示(Arduinoプログラミング)
シリアル出力モニタとはプログラム内の値やデータをパソコンのモニタ上に表示させることができる機能で、ほとんどの開発環境にこの機能があります。表示だけではなく出力したデータを記録して保存したり、機器間でデータをやり取りする時にも使用されます。

4.ブラウザ上で動作確認するなら

ちょっとした動作確認をしたい時は、ブラウザ上でプログラムを作成して実行できる「paiza.IO」が便利なので以下にリンクを貼っておきます。
無料で使用できて「C言語」だけでなく「python」や「JavaScript」「PHP」等たくさんの言語にも対応しています。

ブラウザでプログラミング・実行ができる「オンライン実行環境」| paiza.IO
paiza.IOはオンラインですぐにプログラミングが始められる、オンライン実行環境です。Java,Ruby,Python,PHP,Perlなど主要32言語に対応。プログラミング学習にも。

プログラミングの上達には学ぶことも大切ですが、自分で書いて実行して、どんな動きになるか、間違っててもいいのでこれをひたすら繰り返すことが一番の近道と思います。たくさん書いて実行してみましょう。

5.まとめ

「C言語」で「条件式」を作るときに使用する「演算子」について紹介しました。

「演算子」には「関係・等価演算子」と「論理演算子」があります。

「関係・等価演算子」には大小比較を行う「関係演算子」と、等しいかどうかの比較を行う「等価演算子」があり、これらを組み合わせて「if文」等の「条件式」を作ることができます。

「論理演算子」とは、「条件式」を組み合わせた結果を判定(論理演算)することができ、これによって「if文」で複雑な条件での分岐が可能になります。

「演算子」の理解には実際に作成したプログラムを動かして、目で見て確認すると理解が早いです。
これには安価で高機能なマイコンボード「ATOM LITE」を使用した基本の「Lチカ」が手軽でおすすめです。

本体内蔵のボタンとフルカラーLEDでいろいろな動作プログラムを作成して、理解を深めましょう。


動かして学ぶ「C言語」については、他にも以下のリンクで基礎からサンプルプログラムを使って詳しく紹介しています。

C言語プログラミングの記事一覧
C言語のプログラミング記事一覧です。安価なマイコンボードを使用して動かしながら学んでみましょう♪ プログラム例を使って、コピペで書き込み、動作確認しながら少しづつ理解を深めましょう。

6.独学に限界を感じたら

最後に、独学に限界を感じている方へ、私のように無駄な時間を過ごさないように「C言語」や「Python」を基礎から学べるオンラインスクール(教室での受講も可)の紹介です。

私は学生の頃、独学で「C言語」を始めましたが、かなり時間をかけて結局一度挫折しました(汗)
仕事で少しプログラミングに触れる機会もあり、今となっては小規模なプログラムなら組めますが、どれだけ時間をかけたでしょう・・・

短期間で基礎から学べて質問もできる、そんな環境が当時あったらと思うと・・・
今はとても羨ましい時代になりました。


いろいろなプログラミングスクールのサイトを見て回りましたが「C言語」と「Python」の両方を扱っている所は少ないです。その中でも以下のスクールは他の言語も含めて、たくさんの講座から目的やスキルに合ったものを組合わせて、オンラインでも対面でも受講が可能です。

ほとんどの受講生が未経験で、全国に教室があるため現地で直接指導してくれますが多くの講座がオンライン対応です。
オンラインでは「個人レッスン(講師一人につき3名程)」と「集合レッスン」の選択も可能です。

オンラインレッスンの方には授業で使用するノートPC(ソフトインストール済み)も追加料金なしで貸りられて、質問掲示板を使って授業時間外でも質問できます。

無料体験もあり、説明会やカウンセリング等も行っています。
以下のリンクから内容だけでも確認してみてください。

コメント

タイトルとURLをコピーしました