2016年の発売直後から大きな話題を呼び、中国・ドイツ・韓国・ブラジル・ロシア・ベトナムなど世界各国にも広がった「学び直し本」の圧倒的ロングセラーシリーズ「Big Fat Notebook」の日本版が刊行された。藤原和博氏(朝礼だけの学校 校長)「プログラミングは新しい言語の獲得だ」、野田クリスタル氏(お笑い芸人・マヂカルラブリー)「プログラミングがやりたくなる! まるでゲームの攻略本みたい!」、尾原和啓氏(元グーグル・IT評論家)「プログラミングを通して、ビジネスにも応用できる考え方が見えてくる!」と絶賛されている。本記事では、全世界700万人が感動した同シリーズのプログラミング編『アメリカの中学生が学んでいる 14歳からのプログラミング』より、本文の一部を抜粋・掲載します。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】Photo: Adobe Stock

プログラミングの基礎となる変数とは

 数学で、変数とは、まだわからない量の代わりに使われる文字や記号のこと。

 数式や方程式のなかで、数の代わりに使われている文字や記号を指す。コンピュータプログラミングでは、変数は、値をしまっておくための入れ物として使われる。

 変数は、コンピュータのメモリに保存され、プログラムの実行中は、いつでも取り出したり、変更したりできる。変数は、コンピュータに保存される値の代わりやプレースホルダーの役割を果たすのだ。

 変数の名前のことを識別子、変数にしまわれる情報のことを値という。

 変数の値は、文字や数値など、どんな種類のデータでもかまわない。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

 たとえば、コンピュータゲームのスコアも、変数のひとつといえる。

 ゲームが0点から始まり、プレイヤーが1点を獲得したとすると、変数は次のように処理される。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

 まず、プログラムは、変数「score」の値が保存されている場所を見つける。

 次に、それまでの0という値を新しい値1に置き換えるのだ。

変数を命名し、値を代入する

 プログラム内に変数を作成するには、まず変数を宣言しなきゃならない。

 変数の宣言とは、ざっくり言うと、「いまから情報をしまっておくスペースをつくって、そのスペースに名前を割り当てるのでよろしく」とコンピュータに伝えることだ。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

 棚の箱を使って、おもちゃの山を整理するのと似ている。おもちゃの種類に応じて、箱を持ってきて、ラベルをはり、その箱のなかにおもちゃをしまっていくのだ。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

 変数に値を代入するには、等号(=)を使う。

 そして、等号の左側に識別子、右側に値を書く。

 いちどつくった変数には、いつでも新しい値を代入してかまわない。

 =記号のことを、プログラミングでは、代入演算子という。

 変数に値を「代入」するのに使われる「演算子」だからだ。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】
アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

 変数の指定や命名の方法には、厳密なルールがある。プログラミング言語によって、そのルールはちがうけれど、共通するルールはこんな感じだ。

・変数名は短く、変数の表す内容がパッとわかるようなものにする。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

・変数名は数字以外で始める。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

・変数の名前には、文字、数字、そしてアンダースコアなどの一部の記号が使える。

 予約文字(#、@、&、%など)や半角スペースは使えない。変数に、英語の2単語以上の名前を使いたい場合は、半角スペースの代わりにアンダースコア(_)記号を使うか、単語間に半角スペースを入れないで各単語を大文字で始めるといいだろう。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

 一部の単語は、予約語といって、プログラム内であらかじめ特別な意味が与えられているので、識別子としては使えない。

 予約語は、プログラミング言語によってちがうので、注意が必要だ。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

変数に格納できる情報の種類

 変数には、いろんな種類の情報を格納できる。その情報の種類のことをデータ型という。

文字列値
 文字列変数には、どんな種類の文字でも格納できる(文字、数値、記号、特殊文字など)。

 たとえば、クイズプログラムをつくるなら、文字列変数を使ってプログラムに問題と答えを格納することが考えられるだろう。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

 文字列は、必ず二重引用符で囲むのがルールだ。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

数値
 変数には、整数(正と負の整数)や浮動小数点数(小数点がつく数)のような、数値も格納できる。

 たとえば、プレイヤーが、ゲームのあるレベルをクリアするまでにかかった時間を変数に格納することもできるだろう。

 数値は二重引用符で囲まないこと。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

 変数に値を代入するときは、数式を使うこともできる。

 たとえば、プレイヤーが獲得した経験値を格納しておく変数をつくり、ゴールに到達するたびに、その値に5点を加える、なんてこともできる(score=x+5)。

 計算式を使って、変数scoreに得点を加えることもできる。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

論理値(ブール値)
 何かが正しいか、正しくないかを知りたいこともある。

 たとえば、ゲームなら、いまがゲームオーバーの状態なのか、まだゲーム中の状態なのかを知りたいことがあるし、クイズなら、ユーザーがクイズに正解したのか、まちがえたのかを知りたいことがあるだろう。

 格納したい情報が、「正しい(True)」か「正しくない(False)」か(または、「はい」か「いいえ」か)であるときに使うのが、論理値(ブール値)というデータ型だ。

 論理値は、TrueとFalseの2種類の値しか取れない変数と覚えておくとわかりやすいかもしれない。

アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】
アメリカの中学生が学ぶプログラミングの基礎【全世界700万人が感動したプログラミングノート】

リスト
 情報のリストをまるまる格納できるのが、配列変数だ。

 いくつもの情報をひとつの場所に格納したいときに役立つ。

 たとえば、相手の思い浮かべた単語をもうひとりが予想する、単語当てゲームのプログラムをつくるとしよう。そんなときは、相手が当てた文字をリスト(配列)にまるまる格納しちゃえばいい。相手が新しい文字を当てるたび、その文字をリストの末尾に追加していく、というわけだ。