05:変数と定数と型

◆PROCESSINGで始めるゲーム作りとコンピュータ

village 05:変数と定数と型

今日の話題

 

15:変数・定数・型

プログラムを作る際に覚えて欲しい知識は、おいおい説明します。その中で最初に覚えてほしいものに「変数」、「定数」、「型」があります。

変数とは「変な数」ではなくて(笑)、「変化する数」の事です。値がいろいろと変わる数の事を変数と呼びます。その一方で、一度決めたら変化しない数の事を「定数」といいます。

例えば「私は男だ」という場合、「男」は定数です。性転換手術でもしない限り、物理的な性別は変化しませんよね。また「私の身長は180cmだ」という場合の「身長」は変数です。身長は年齢とともに変化するからです。

ニューハーフ
(画像URL:illust-AC 様:カスミン さん)

多くのプログラミング言語では、変数と定数は明確に分けて使います。PROCESSINGでも変数と定数は分けて使いますので、覚えておいてください。

ではとは何でしょうか?。プログラミング言語では「どんな値をいれるものかを示す情報」を型といいます。

コンピュータは様々な値を扱うことができます。整数、文字、小数点を含む数などです。それらを適当に扱っていると、いろいろと混乱を招くことがあります。

人間なら「私の身長は180です」と言われれば、180は数値(整数)だとわかります。また「私はMSLABOです」と言えば、MSLABOは文字だとわかります。

でもコンピュータは、そこまで融通が効きません。180が数値なのか単なる文字なのか判別ができないのです。

だから、プログラムを作る人が「この180というのは数値だよ。だから足し算や引き算などの計算に使ってもいいんだよ」と教えてあげる必要があるのです。また「MSLABOというのは文字だからね。計算に使っちゃダメだよ」と教えるのです。

より具体的には、180という値を入れておくための箱(変数)を用意し、その変数は整数なんだよと教えてあげます。型を教えてあげることを「型宣言」といいます。面倒くさいですね。でも、しょうがありません(汗)。

変数と型
(画像URL:illust-AC 様:至福の隙間 さん、Cranberry さん)

現実の世界でも、タコ焼きを作りたい時はタコ焼き用の鉄板を使います。タイ焼きならタイ焼き用の鉄板を使います。材料(練った小麦粉)は同じでも、ごちゃまぜにはしません(笑)。

PROCESSINGでは、変数や定数にどんな値を入れるのかを、プログラムを作る人がコンピュータに教えなくてはいけません。このようなプログラミング言語を「静的型付け」言語といいます。代表的なものにJava、C、C#、VB.netがあります。

一方で、プログラミング言語の中には型を意識しないものがあります。同じ名前の変数や定数に、文字も数値も格納できるわけです。このようなプログラミング言語を「動的型付け」言語と呼びます。JavaScript、Python、Rubyなどが代表例です。

どちらが良いか・・・たまに宗教論争的な言い争いが起きることがありますが、私はケースバイケースだと思っています。

PROCESSINGで扱う代表的な型には、以下の様なものがあります。

int(イント、またはインテジャー)型
整数を扱う型です。具体的には -2147483648 から +2147483647 までの値をあつかえます。ざっくりと±21億まで扱えると思っていればOKです。

long(ロング)型
整数を扱う型ですが、intよりももっと大きな数を扱えます。具体的にには -9223372036854775808 から + 9223372036854775807 までの値をあつかえます。大きすぎて数えられませんが・・・約±900京(けい)です。一十百千万億兆のうえの位・・・京(けい)です。

float(フロート)型
浮動小数点を扱う型です。浮動小数点を説明するのは難しいのですが、ざっくりと 3.14のような小数点以下の値をもつものと思って頂ければOKです。

double(ダブル)型
同じく浮動小数点を扱う型です。floatよりも大きな範囲の数を扱うことが可能です。

char(チャー、キャラ、キャラクタ)型
整数を扱う型です。intよりも小さな範囲の値を扱います。PROCESSINGでは1文字分のデータを格納するのに用います。

boolean(ブーリアン)型
真偽値ともいいます。true(真)かfalse(偽)のどちらかを扱います。主にフラグ(何かの処理を実行したか否かを示す情報)や、そもそも状態が2つしかないもの(男と女など・・・あ、オカマはbooleanでは表現不可能ですね:笑)といった情報を扱うのに便利です。

String(ストリング)型
文字列を扱う専門の型です。char型は1文字分の情報しか扱えません。Stringは複数の文字(文字列)を扱うことが可能です。PROCESSINGでは、非常によく使う型です。

この他にも様々な型があります。その都度説明したいと思いますので、いきなり理解できなくても大丈夫です。今は「そんなものか」と思って頂ければOKです。

少しコンピュータに詳しい方は、以下の記事も参考にしてみて下さい。

 

16:16進数と8進数

01:コンピュータの仕組み」記事で2進数について説明しました。1と0だけで数をかぞえる方法でしたね。

コンピュータにとっては都合の良い数え方ですが、人間にとっては非常にわかりにくいものです。第一、ある数を表現するのに桁数が膨大になってしまいます。

例えば10進数なら255 と3文字で足りるものが、2進数では11111111と8桁も必要になります。

そこでコンピュータの世界では2進数を書き表す際に、2進数の代わりに16進数が良く使われます。

16進数は、その名の通り0、1、2、3・・・と数えていって16までいったら繰り上がる数え方です。具体的には、以下のように数えます。
各進数
0から順番に数えて9までは10進数と同じです。9の次は10なのですが、16進数なので、まだ繰り上がりません。そこでアルファベットのAを10の代わりに使います。

Fまで(15まで)数えたら、はじめて繰り上がって10(イチゼロ)になります。

上図を見ていただくとわかると思いますが、1桁の16進数は2進数4つ(4bit)で表現できます。ですので、ある数を2進数で記述する時に、1と0でズラっと書くよりも16進数で表現した方がわかり易いのです。

例えば 10進数の255は2進数では11111111と書きますが、16進数ではFFと記述できます。Fは1111の事なので、FとFで1が8つ分になるわけです。FFといっても某オンラインゲームではありません(笑)。

16進数

書いてある物が10進数か16進数か区別するために、16進数を表記する時は、16進数の前に「0x」とか「&h」という記号をつけます。例えば、16進数のFF(=10進数の255) なら 0xFF とか &hFF と記述します。

アルファベットは大文字でも小文字でもOKですが、大文字を使うことが多いようです。ですので、0xff ではなくて 0xFF と書きます。

8進数はちょっとマイナーな数え方です。8進数は通信処理を行うプログラムなどで用いられますが、正直いってあまり使う機会はありません。

0、1、2と数えて8までいったら繰り上がって10(イチゼロ)になります。1桁の8進数は2進数3つ(3bit)で表現できます。

8進数を書く場合は、数の前にo(オー)か0(ゼロ)を付けます。8進数の10(=10進数の8)は、010 や o10 と記述します。

 

Forest今日の言葉

・変数

変化する数の事。プログラムの中で値が変わる可能性があるものを変数を言います。

・定数

値が固定で変化しない数の事。プログラムの最初に1回だけ値を指定します。以降は内容が変わりません。

・型

どんな値をいれるものかを示す情報。多くのプログラミング言語では、扱う値が整数なのか文字なのかを区別する必要があります。

・型宣言

運動会などで「宣誓!、私たちはスポーツマンシップにのっとり・・・」というアレです(笑)。変数や定数を使う前に、どんな意味の数値なんだよとコンピュータに教えてあげる事を指します。

・静的型付け言語

変数や定数を使う前に、その型を指定(宣言)するプログラミング言語の事です。PROCESSINGも静的型付け言語になります。

・動的型付け言語

変数や定数を使う前に、その型を指定しなくても良いプログラミング言語。WEB系で使われるスクリプト言語で多く用いられている方法です。

・16進数

0、1、2と数えて10(じゅう)をA、11をB、12をC、13をD、14をE、15をFで表現します。16までいったら繰り上がって10(イチゼロ)になります。コンピュータでは2進数で数を表現するのが面倒くさいので、16進数を使います(笑)。16進数の前には 0x とか &h を付けます。

・8進数

マイナーな数え方。0、1、2と数えて8までいったら繰り上がって10(イチゼロ)になります。あまり使う機会がありませんが、通信系のプログラムを作るぞという人は重宝するかもしれません。

 

 今日のまとめ

  • 定数と変数の違いを理解しよう
  • 型とは「どんな値をいれるものかを示す情報」
  • PROCESSINGは静的型付け言語なので、変数や定数を使う前に型を指定する
  • 2進数で数を表現すると面倒くさいので16進数を使う

06:PROCESSINGで計算へ進む
04:ファイルと文字コードへ戻る
目次へ戻る


本ページで利用している特に参照元記載のないアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)