
[Q & A] モンタに九九を言わせてみよう
投稿日: 2018年1月4日
コードモンキーサポートデスクに寄せられたユーザーからのご質問およびコードモンキーサポートデスクからの回答を紹介しております。
今回のテーマは、モンタに九九を言わせる方法。
とよプロ2017のイベントで、モンタに九九を言わせる方法が紹介されていましたが、もう一度教えてください。
いつもコードモンキーをご利用いただきありがとうございます。
いただいたご質問につき回答いたします。
コードモンキー コードの冒険で学習するFOR文によるループ、アレイ(配列)、そしてsay()関数を上手く使うことで、モンタに九九を言わせることができます。
九九の計算は、1から9のすべての数字に対して1から9をかける、という計算ですので、まずは1から9までの数字が入った配列を定義して、その配列に対してFOR文でループをまわし、配列に入っている1から9のすべての数字に1から9の数字をかける計算をすると良さそうです。
なので、まずは1から9までの数字が入った配列を用意しましょう。こちらのブログで紹介した通り、コードの冒険ではCoffeeScriptの文法がそのまま使えますので、1から9の数字が格納された配列は以下の書き方で定義することができます。名前を”numbers”としました。
# 配列 numbers を 定義 numbers = [1,2,3,4,5,6,7,8,9]
そして、FOR文を2重に使って、この配列に格納されている1から9までのすべての数字に対して1~9までのすべての数字を掛け算して、その結果をsay()関数でモンタにいわせる、というのが次のコードになります
#配列 numbers を定義 numbers = [1,2,3,4,5,6,7,8,9] # ループをまわして九九を言わせる for n in numbers for m in numbers kuku = n * m # プログラミングでは掛け算には * を使います say n + " x " + m + " = "+ kuku
以上のコードを実際に実行した例がこちら(スマホ不可)
FOR文を二重に使うパターンはコードの冒険本編では出てこないパターンなので少し戸惑うかもしれませんが、やっていることは”for b in bananas”などのコードで「すべてのバナナに対して~~をする」ということをするのと同じで、配列numbersに入っているすべての数字に対してfor文の中のコードを実行するという形で九九の計算を行っています。
また、say 以降の「n + ” x ” + m + ” = “+ kuku」の部分の書き方も不可思議に感じるかもしれませんが、この部分ではCoffeeScriptの文法に従って “数字×数字= 計算結果”となるように文字列と数字(変数)の連結を行っています。(CoffeeScriptの文法では文字列の連結には”+”を使います。)
以上、九九の計算をモンタに言わせるコードの例を紹介しました。上にあげたのはあくまでも一例で、ほかにも”until”を使って表現する方法などいろいろな書き方があります。ぜひいろいろ試してみてください。
引き続きコードモンキーをお楽しみくださいませ。
コードモンキーサポート