2学期開始!体験授業 受付中 →
ROBO SCIENCE

ブロックでも C++ でも、
プログラムの構造は同じ。

2026.10.07
R1 R2 R3 PE(Pre-expert) ES(Expert-soccer) ER(Expert-rescue)

ロボサイエンスでは、コースによって使うプログラミング言語が違います。はじめて取り組む学年はブロックを並べ、上の学年は Python や C++ を書きます。

見た目はまったく違います。ただ、どの講座でも同じ回を設けています。プログラムは3つの形でできている、という話です。

プログラムは、3つの形でできている

プログラムの流れは、順次・選択・反復の3つに分けられます。

スタート やること 1 やること 2 やること 3 おわり
順次書いた順に、上から1つずつ実行する
スタート 条件は? はい いいえ やること A やること B おわり
選択条件で、どちらか一方だけを通る
スタート 続ける? はい やること もどる いいえ おわり
反復同じことを、条件が続くあいだ何度も

この3つの組み合わせだけで、どんな処理でも書けることが知られています。1966年に数学的に示されたもので、構造化定理と呼ばれます。

言い方を変えると、プログラムを読むときに探すものは3つだけでいいということです。どこが順番に並んでいて、どこで分かれていて、どこがくり返しているか。それが分かれば、そのプログラムの骨組みは分かります。

同じ動きを、3つの書き方で

では、実際に見比べてみます。やらせたいことは、どれも同じにします。

黒が見えたら左に曲がる。そうでなければ両方のモーターを回してまっすぐ進む。それをずっとくり返す。

ライントレース(線をたどる)の、いちばん基本の形です。

① ブロック(LEGO SPIKE)

ロボカップジュニアの入門となる講座では、ブロックを並べてプログラムを作ります。

LEGO SPIKE のブロックで書いたライントレースのプログラム。「ずっと」の中に「もし 反射光が50%未満 なら、でなければ」が入り、その中にモーターのブロックが縦に並んでいる
実際の画面。「ずっと」のコの字が反復、上下に分かれているところが選択、中で縦に並んでいるところが順次にあたります。A・B はモーターをつないだ差し込み口の名前です。

ここがブロックのおもしろいところで、3つの形が、ブロックの形そのものになっています。コの字に囲まれていれば繰り返し。上下に分かれていれば分かれ道。縦に並んでいれば順番です。

② Python

同じものを Python で書くと、こうなります。

while True:                        # ← 反復(ずっとくり返す)
    if sensor.reflection() < 50:    # ← 選択(黒が見えたか)
        left.stop()                  # ┐ 順次
        right.start(50)              # ┘
    else:
        left.start(50)
        right.start(50)

Python では、字下げ(インデント)が構造を表します。どこからどこまでがくり返しの中なのかを、行の先頭の空白で示します。

③ C++

Raspberry Pi Pico を使う講座では、C++(Arduino 言語)で書きます。

void loop() {                       // ← 反復(ずっとくり返す)
  if (analogRead(A0) < 400) {       // ← 選択(黒が見えたか)
    motorLeft(0);                     // ┐ 順次
    motorRight(50);                   // ┘
  } else {
    motorLeft(50);
    motorRight(50);
  }
}

C++ では、波かっこ { } で囲んだところがひとまとまりになります。loop() は、電源が入っているあいだ中身をくり返す関数です。

並べてみると

3つとも、同じ形をしています。

いちばん外側に反復があり、その中に選択があり、その中に順次が入っている。囲み方が、コの字か、字下げか、波かっこかの違いだけです。

この見方ができるようになると、ブロックから文字の言語に移るときの段差が小さくなります。新しい記号の読み方を覚える作業であって、考え方を新しく覚え直すわけではないからです。

どの講座でも、同じ話をしている

ロボサイエンスでは、ロボカップジュニアの種目とコースに応じて言語を使い分けています。

講座使う言語
レスキューライン エントリーLEGO SPIKE(ブロック)
レスキューメイズ エントリーLEGO SPIKE(ブロック)
レスキューライン ワールドPython
レスキューメイズ ワールドC++
サッカーライトウェイト ユースC++
サッカーライトウェイト ワールドC++

使う道具は違いますが、この回だけは、どの講座でも同じ内容を扱います。自分のプログラムを開いて、どこが順次で、どこが選択で、どこが反復かを指でなぞってもらいます。

小学生はブロックを並べ、高校生は C++ を書く。並べているものは、どちらも同じ3つです。

ロボサイエンスについて

ロボカップジュニア2027 に向けて、レスキュー(災害救助)とサッカーの2種目に取り組みます。プログラミングと電子工作の経験は問いません。

ロボサイエンスのコース紹介 →
これまでの大会成績 →
体験授業・お問い合わせ →

← ロボサイエンスの記録一覧へ戻る