ループ

MicroPythonを使ったさまざまなループの使い方を学びます。


Author:Pedro LimaLast revision:2024/12/18

ループは全てのプログラム言語での基本的な構造です。これにより、コードブロックを複数回実行することができます。MicroPythonでは、繰り返しタスクを効率的に実行でき、開発者のツールボックスに入れておくべき素晴らしいツールです。

要件

始める前に、要件を確認します。

MicroPythonが利用できるArduinoボード

MicroPythonは、いくつかのArduinoボードで公式にサポートされています。互換性のあるボードの一覧を示します。

ソフトウェア要件

  • Arduino Lab for MicroPython: Arduino Lab for MicroPythonは、Arduinoボードで、MicroPythonスクリプトの作成・実行が可能なエディタです。

i
Arduino Cloud - Arduino Labs for MicroPythonで、オンラインエディタも利用可能です。
# ボードとエディタの設定

  1. Arduino Lab for MicroPythonを開きます。
  2. ArduinoボードとPCを、USBケーブルで接続します。
  1. ウインドウの左上の接続ボタンをクリックします。接続したボード(のポート名)が現れます
i
ボードにMicroPythonをインストールするのにヘルプが必要ですか? MicroPythonインストールガイドを参照してください。

MicroPythonでのループ構造

MicroPythonは、2つの主なループ構造をサポートします。それぞれ特定の目的があります。

  • forループ: forループは、リストやタプル、文字列といった、事前に決まっているシーケンスを繰り返すものです。ループは、シーケンスの個々の要素を、一回に一つずつ取り出し、全ての要素を操作するまで処理を実行します。
  • whileループ: whileループは、指定した条件が真の間、実行し続けます。シーケンスに依存するforループとは異なり、whileループは、ループを停止するかどうかを決定する条件式に依存します。

これらのループを深く理解するために、スーパーマーケットでのタスクを考えてみましょう。

  • forループ: 各商品を正確にいくつカゴに入れるのかを順に書いてあるショッピングリストを持って、スーパーマーケットの通路を歩いていることを想像してください。リストにある商品をすべて集めると、タスクは終了します。これは、forループがシーケンスを繰り返し、指定した商品をひとつづつ扱うのと同様です。
  • whileループ: セール中のある商品を在庫がある分だけ買うために、スーパーマーケットに行くことを想像してください。あなたは、セールが終わるか、在庫がなくなるまで、毎日スーパーマーケットに戻ってきます。whileループでは、条件(セールが続くなど)が真である間、戻り続けます。

Forループ

forループは、シーケンスを繰り返すのに使います。シーケンスの要素を自動的に一つずつ取得します。

1
2
for variable in sequence:
    # Code block to execute
  • for: ループを開始するキーワード。
  • variable: シーケンスの繰り返し中に要素の値を格納します。集合のそれぞれの繰り返しの値を取得するものです。
  • in: 繰り返すシーケンスを指定するのに使うキーワード。
  • sequence: ループを繰り返す集合(リストやタプル、文字列など)。
  • コードブロック: 各繰り返しで実行するためのコードブロック。

コード例

forループを使ってみましょう。この例では、繰り返し(iterataion)を意味するiを、5個の範囲で設定します。

1
2
3
4
5
0
1
2
3
4

これは、0~数え始めるからです。最初にループを実行するときは、0を表示し、2回目は1を表示します。

Whileループ

whileループは、指定した条件が真の間実行し続けます。

1
2
while condition:
    # Code block to execute
  • while: ループを開始するキーワード。
  • condition: 各繰り返し前に評価するブール表現。Trueのときはループを継続します。
  • コードブロック: 各繰り返しで実行するためのコードブロック。

コード例

whileループを使ってみましょう。この例では、カウンターがあり、その値をREPLで表示します。何回ループを実行したかを数えます。各表示の間に、time.sleep(1)関数で待つことで、REPLで簡単に読めるようにしています。

1
2
3
4
5
6
7
import time
counter = 0

while True:
    counter += 1
    print('Number of iterations: ' + str(counter))
    time.sleep(1)

この例では以下を使いました。

  • while True:: whileループを無限に繰り返します。
  • print('Number of iterations: ' + str(counter)): 現在の繰り返し数を表示します。
  • print()関数では、数値と文字列を混ぜることができないので、REPLに表示する際、str(counter)を使う必要があります。

結果は無限ループで、現在の回数を表示します。

1
2
3
4
5
Number of iterations: 10
Number of iterations: 11
Number of iterations: 12
.....
Number of iterations: 99999 # this loop has been running for a long time..

制御文

ループ中では、continueとbreakという制御文を使い、ループがどのように振舞うのかを制御できます。

Continue

continue文は、繰り返しで、以降をスキップするのに使います。例えば、何らかの理由で、5回ごとにスキップしたいとき、以下のコードが使えます。

1
2
3
4
for i in range(10)
    if i == 5:
        continue
    print(i)

このスクリプトを実行すると、結果は以下のようになります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
0
1
2
3
4
6 # we skip the 5th iteration
7
8
9
10

Breeak

break文は、全ての繰り返しを終える前にループから脱出するのに使います。これは、何か予期しないことが起こった時などに、処理を終了するのに役立ちます。

1
2
3
4
for i in range(10)
    if i == 5:
        break
    print(i)
1
2
3
4
5
0
1
2
3
4

まとめ

MicroPythonでのループは、繰り返しタスクを自動化するための基本です。さまざまなループ構造の使い方を理解すれば、効率的で効果的なコードを書くことができます。

これらの例では、以下のようなループを示しました。

  • 指定した繰り返し回数を実行するfor(forループ)
  • 条件が満たされるまでループするwhile文(whileループ)

オリジナルのページ

https://docs.arduino.cc/micropython/basics/loops/

最終更新日

July 26, 2026

inserted by FC2 system