はじめに
普段あなたは「さっきの」とか「あれ」とか言いますか?
私はつい言ってしまいます。そして大体、聞き返されます。
「さっきのって何のこと?」「あれってどれ?」
私が普段会話する相手はITエンジニアなので、曖昧なことは大抵許されません。
かく言う私も、ほとんどの場合聞き返してます。
エンジニアの会話って、そんな感じじゃないですか?ですよね。
正直言ったら面倒くさいですが、それ以上に「大事だよね」と言う価値観が共有されています。
『文章題で身に付くプログラミング思考入門️』は、日常や文章問題からプログラミング思考を身に付けていく、簡単で身近で、あなたをちょっと輝かせてくれるシリーズです。
今回は、変数とデータの再利用について解説していきます。
前回のまとめ
目覚ましスヌーズの繰り返し処理
- あらかじめ、条件とその時の処理を想定して洗い出しておきましょう。
- 処理の順番を考えましょう。
- 必ず終了させましょう。
対象者
- プログラミングの考え方を学びたい人
- プログラミングに挫折したことのある人
- 論理的思考を鍛えたい人
- 文系の人
- エンジニアの思考を理解したい人
概要
さて、 第二回の記事でプログラミングについて少し触れました。
初期値:初めから決まっている情報を明らかにする
定義:どのような情報が欲しいのかを明確にする
変数:ある特定の情報を受け取るための箱
条件分岐:得られた情報が当てはまったかどうかによって処理を変える
代入:欲しいデータを記憶する
返り値:結果を知る
データを扱うときは、大きく2つに場合分けできます。
- データを後で再利用したい
- 今だけデータが処理できればいい
1の場合はデータを保存しておかないと、後で再利用できませんね。
例えば、ユーザーの名前などです。
逆に2の場合は、計算が終わればデータには消えてもらった方が都合が良いです。
一時的な対応や計算のために使いたい時などです。
データを保存したい時に必要になるのが、
定義:どのような情報が欲しいのかを明確にする
変数:ある特定の情報を受け取るための箱
代入:欲しいデータを記憶する
です。
第三回でお話しした通り、
コンピューターは頭が堅いです。
言い換えると、コンピューターが受け取る情報は厳格にルール化されています。
なので、コンピュータにデータを保存させるためには、
- これから渡したいデータがどのような種類なのかを 定義 し、
- データを保存するための箱である 変数 を用意させ、
- その箱には 名前 を付け、
- 箱に入れたいデータの内容が何なのかを明確にし、代入 して記憶させる
という準備が必要になります。
一つずつ紐解いていきましょう。
定義
これから渡したいデータがどのような種類なのかを 定義
そうです、データの種類を特定しなければなりません。
なぜなら、データの種類によってコンピュータ側の準備が変わるからです。
例えば、あいうえお
と123
を同じものとして扱うことは感覚的にも違和感がありませんか?
あいうえお
+ 123
を計算しようとは思いませんよね。
コンピュータにとっても、あいうえお
と 123
はデータの種類が別です。
このようなデータの種類を データ型 と言います。
コンピュータ側の動きとしては、どのくらいのメモリ量をどの場所に確保するか?が変わってきます。
ではデータ型にはどんな種類があるのでしょうか?
代表的なのは、
- 文字列型:"こんにちは"
- 数値型:123
などですね。
実は、プログラミング言語によって多少の違いがあります。
わからなかったり迷ったりした時は、あなたの使いたいプログラミング言語の 公式リファレンス を検索して、データ型を調べましょう。
公式リファレンスとは、プログラミング言語の辞書のことです。そこに全て載っています。
見ながらやったらいいのです。
公式リファレンスを使わないプロはいません。ここが学校のテストと全く違う所です。
カンニングする方が偉いです。カンニングしながらやってください。
正しい情報を獲得して、その場で試す。これが、早くプロレベルに到達するための近道です。
簡単に説明してくれている記事はたくさんありますが、多くの場合は執筆者の解釈が含まれます。たくさんの人の解釈を知ることはとても良いことです。あなたの世界を広げてくれます。
ただし、あなたが絶対的に信用している相手でなければ、そのコードを鵜呑みにしない方が得策です。公式リファレンスを元に書くようにしましょう。
変数
データを保存するための箱である 変数 を用意させ、
変数:ある特定の情報を受け取るための箱
例えば「入れ物を用意してね」と言われたら、「どんな入れ物がいいのかな?」と迷いませんか?
逆に「詰め替えティッシュ用のケースを用意してね」と言われたら、迷わなくていいので助かります。
コンピュータも同じです。
「このデータ型用のメモリを用意してね」と頼む必要があります。
名前
その箱には 名前 を付け、
後で使いたいデータは、人間とコンピュータとが共通して使う明確な名前が必要です。
変数の名前の場合は、そのまま 変数名 と呼びます。
「さっきの」とか「あれ」だと何を指すのかが不明確になりますね。
人間の場合は文脈で判断できたりします。AIも割と正確に推測してくれたりしますね。
ただし、プログラミングの世界では曖昧さは許されません。
特に、間違えると重大な損害を引き起こすデータを扱う場合もありますから、厳格に名前を管理し、正確に参照することが必要です。
そして、名前の付け方も重要です。
変数名を読んで、どんなデータが中に入っているのか予測できるような名前にしましょう。
現場ごとに命名ルールが定められている場合も多いでしょう。
名前は、プログラミングの世界でもとても大事です。
詰め替えティッシュ用のケースに名前を付けるとして「ティッシュ1・ティッシュ2」とか「太郎・花子」とかはイマイチですね。
知っている人にしか通じませんから。
例えば「リビング用ティッシュ・寝室用ティッシュ」と名前を付けてみたら、「リビングで使うためのティッシュなのかな。リビングに置いてあるんじゃないかな」と予測できます。
代入
箱に入れたいデータの内容が何なのかを明確にし、代入 して記憶させる
代入とは、用意した変数に、実際にデータを入れて記憶させることです。
「リビング用ティッシュ」と言う名前の変数も、用意しただけでは中身が空っぽです。
使うためには、ケースに詰め替えティッシュを入れる必要がありますね。
プログラミングのコードだと
living_room_tissue = "詰め替えティッシュ"
こんな感じに書くことが多いです。
数学と違って、=
は左辺と右辺の等価を表すのではなく、左辺に右辺の値を代入しなさいという命令です。
まとめます。
- 定義:データ型を明示
- 変数:データを記憶させるためのメモリを確保
- 名前:後で呼び出すためにつける
- 代入:実際にデータを入れて記憶させる
ティッシュで例えます。
- 定義:
詰め替えティッシュ
を入れる - 変数:
詰め替えティッシュ用のケース
に入れる - 名前:
リビング用ティッシュ
と名付ける - 代入:
リビング用ティッシュ
に詰め替えティッシュ
を入れる
これで「リビング用ティッシュちょうだい」と言ったら、ティッシュが使えるようになりましたね。
次回は、文章の構造をプログラムにしてみます。
まとめ
プログラミングでは、
- カンニングする方が偉いです。カンニングしながらやってください。
- 数学と違って、
=
は左辺と右辺の等価を表すのではなく、左辺に右辺の値を代入しなさいという命令です。
最後に
ここまで読んでくださってありがとうございます!
少しでも役に立ったら「いいね」をください。続ける励みになります。
反応をもらって記事を良くしていきたいので、忌憚のない意見をコメントにいただけたら嬉しいです。