
[Q & A] d = d + 5 ? イコールの使い方が算数と違う?
投稿日: 2018年3月5日
コードモンキーサポートデスクに寄せられたユーザーからのご質問およびコードモンキーサポートデスクからの回答を紹介しております。
今回寄せられたご質問は、プログラミングにおける ” = “の使い方について
コードの冒険スキルモード4-4に出てくる ” d = d + 5 “というコードについて解説してください
いつもコードモンキーをご利用いただきありがとうございます。
いただいたご質問につき回答いたします。
スキルモード4-4では、”12.times-> “という繰り返しのコードの中で “d = d + 5″というコードを使って12個のバナナを獲得します
プログラミングの” = “は数学の” = “とは役割が違う
プログラミングにおける ” = ” は、数学とは役割が異なります。
数学では、” = “は ” 1 + 1 = 2 “のように左辺と右辺が等価であることを意味する記号ですが、プログラミングにおける” = “はそれとは異なり、「=の左(変数)に=の右の内容を代入する」というのが基本的な使い方となります。
つまり、”d = 10+5″というコードが実行されたときには、左辺dに右辺10+5が代入されるため、dの値は15としてプログラムに記憶されます。
# 左辺の変数dに右辺の10+5が代入される d = 10+5
d = d + 5 ?
今回のご質問、スキルモード4-4の “d = d + 5” というコードについても左辺に右辺が代入されるというのは同様ですので、 このコードを実行すると左辺の変数dに右辺の内容d + 5が代入されます。ただし、このコードを理解する上でのポイントは、右辺のdには、そのコードが実行される前の時点での値が入っているということです。
#スキルモード4-4の解答例 d = 20 12.times -> step 6 turn d d = d + 5 #右辺 "d + 5" の"d"は、この行が実行される前の d
解答例のコードを順にみていくと、まず1行目に” d = 20 “というコードがありますので、ここで、dには20が代入されます。
そして、12.times -> というコードによって、以下のコードは12回繰り返し実行されることになります。
d = 20 12.times -> # 以下の3行は12回繰り返される step 6 turn d d = d + 5
1行目コードによって d には 20 が代入されている状態なので、最初の繰り返しが始まる時点での”d”は20で、1回目の繰り返しが終了すると、d は25になります。
#最初の繰り返し step 6 # 6歩歩く turn d # この時dは20なので、20度まわる d = d + 5 # d に 20 + 5が代入され、dは25になる
1回目の繰り返しの結果 d は 25になっているので、2回目の繰り返しが始まる時点での d は25、2回目の繰り返しが終了すると d は30になります、以下のように
#2回目の繰り返し step 6 # 6歩歩く turn d # この時dは25なので、25度まわる d = d + 5 # d に 25 + 5を代入し、dを30とする
以上と同じことを12回繰り返すことで、dの値は繰り返しのたびに5ずつ大きくなり、”turn d”で回転する角度も5ずつ大きくなることになります。
このように、d という変数に、そのコードが実行される前の時点での d に 5 を足した数値が代入される、というのがループによって繰り返し実行されるのがスキルモード4-4です
今回もそうでしたが、このステージで学習した”d = d + 5″のようなコードは、プログラミングにおいて主にループの中でよく使われるとても有効な考え方です。是非繰り返しステージをプレイして使いこなせるようになってください。
以上、ご案内いたします。また不明点などありましたらお気軽にお問い合わせください。
引き続きコードモンキーをお楽しみくださいませ。
コードモンキーサポート