【変数5ヶ条】スクラッチで変数の基本をマスターする5つの法則

スキルアップの練習
Scratch星人
Scratch星人

「変数」は、学校の授業などでは、あまり耳にしない言葉です。

それだけに「難しい」「使い方が分からない」と、避けてしまう人がいるのも事実だと思います。

しかし、変数を覚えればもっと面白い作品が作れるようになります。

この記事では、変数の使い方をまとめた「変数5ヶ条」を紹介します。

困ったときは、ぜひ思い出してください。

変数とは

まず、変数がそもそもよく分からないという場合は、以前書いた「変数ブロックの使い方」を読んでから、こちらに戻ってきてください。

【5ヶ条その1】決まった値を入れる(定数のように使う)

決まった値というのは、言い換えると「変わらない数」です。
そのような値のことを「定数」というので、この機会にぜひ覚えましょう。

例としては、スクラッチでよく使うものとして、以下のものが挙げられます。

  • キャラクターの初期位置
  • キャラクターの最大HP
  • ジャンプの際の重力

一般的に定数に当てはまるものは、他にもあります。

  • 緯度と経度(地球上の位置を特定する座標)
  • 円周率(3.14159…)
  • 光の速さ(299792458m/秒)
  • 長さ(1インチ = 2.54cm)

プログラミングでは、このような数を変更できない定数として記述することがあります。

スクラッチでは、厳密に定数というものはありませんが、考え方として覚えておくと、使える場面はよくあります。

上の画像は、消費税率を定数として格納して、計算するコードです。
(2025年4月現在、消費税率は10%)

名前は「定数」としていますが、「定数_消費税率」などとすると、変更しないということが直感的に分かりやすくなるかもしれません。

【5ヶ条その2】合計金額やスコアを計算する(更新)

更新というのは、データがその時々によって変わることを言います。

スクラッチでは、よく使う変数の考え方だと思います。

上の画像は簡単な例ですが、マウスポインターに触れるたびにスコアが1ずつ増えていきます。

【5ヶ条その3】繰り返しのカウンタとして使う

繰り返しのカウンタとして、変数を活用すると、どんな良いことがあるかというと、コードを短く作れるようになります。

慣れるまでは、難しく感じる考え方ですが、1, 2, 3…や、1, 3, 5, 7…のように何かしら数字に法則を発見できたときは、カウンタを使うチャンスです。

Scratch星人
Scratch星人

記事の最後の方で、リストに対してカウンタを使いながら、データを取得する方法を紹介しますので、最後まで読んでくださいね!

【5ヶ条その4】ユーザーが入力したデータを保存する

スクラッチの「〜〜〜と聞いて待つ」で質問した内容は「答え」のブロックに格納されますが、次に新しい質問をすると、答えの中身が最新の入力データに上書きされてしまいます。

そこで、入力データは、「答え」から「自分が用意した変数」に移すというクセをつけることをおすすめします。

【5ヶ条その5】フラグ(状態管理)に使う

フラグ?状態管理?と思うかもしれませんが、かなりの頻度で使う考え方なので、ぜひ覚えましょう。

一般的には2択で管理します。
上の画像の例では「開いている」「閉じている」ですね。

コードの内容としては、以下の処理を実行しています。

  • 「開いている」場合はドアを閉じる(フラグも「閉じている」に変更)
  • 「閉じている」場合はドアを開ける(フラグも「開いている」に変更)

本格的なプログラミングでは「true」と「false」という言葉で状態を管理します。

実はスクラッチでは、2択以外の方法でも状態管理ができてしまいます。

以前、扇風機をプログラムする記事を書きましたが、こちらでは、4つのモードを変数の数字で管理しています。

  • モード0: 停止状態
  • モード1: 弱風
  • モード2: 中風
  • モード3: 強風

おまけ(リストとカウンタの使い方)

例えば、学校の持ち物一覧をリストにまとめた場合、「持ち物チェック」というカウンタ変数が、持ち物リストの左の数字と一致することで、中身を取り出すことができます。

ちょっと難しいという場合は、同じようなコードを作って動作を確認してみてください。

いくつか作っているうちに、自然と理解が深まるはずです!

まとめ

変数の使い方で困ったときのために「変数5ヶ条」を紹介しました。

すぐに全てを理解できなくても、とにかく5ヶ条を意識して変数を使ってみましょう。

この記事が、あなたのお役に立つことを願っています(๑╹ω╹๑ )

コメント

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