局所変数
ローカル変数のことだよ
変数だよ
使える範囲が決まっているよ
簡単に書くよ
局所変数(読:キョクショヘンスウ)とは
「ローカル変数」のこと。
用語の中身としては
プログラミングの話で出てくる「変数
(値を入れておく箱)」の分類のひとつ
であり
「この変数は、この関数
(処理のまとまり)の中でだけ有効だよ」みたいに使える範囲が決まっている変数のこと
です。
一般的なプログラミング言語であれば
普通の変数のこと
と捉えても間違いでは ありません。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「関数」と「変数」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
関数は「何かを入れると何かをやって何かを返してくれる、処理のまとまり」です。
一般的には、入力を受けて処理をやり、その結果として出力があります。
変数は「プログラミング言語における『値を入れておく箱』」です。
処理の途中で値を入れたり、逆に取り出したりできます。
以上を踏まえて、本題に入ります。
変数は2種類に分類できます。
それは
1.縄張りの中だけで使える変数
2.どこからでも使える変数
の2つです。
この2つの変数のうち
1.縄張りの中だけで使える変数
が「局所変数」です。
「ローカル変数」とも呼ばれます……というか個人的には「ローカル変数」という言い方の方が馴染みがあります。
あと、ついでなので書いておくと
2.どこからでも使える変数
は「大域変数」や「グローバル変数」と言います。
……と、言葉だけで説明されてもピンと来ませんよね。
大丈夫です。
例を挙げて説明します。
※個人的には「ローカル変数」「グローバル変数」という言い方の方が馴染みがあるので、以降は「ローカル変数」「グローバル変数」と表現します。
例えば、そうですね。
プログラム「piyota」が ありました。
プログラム「piyota」の中には変数「g_hensu1」と関数「func1」と関数「func2」があります。
関数「func1」の中には変数「l_hensu2」があります。
変数「g_hensu1」は関数「func1」の中でも関数「func2」の中でも使えます。
関数「func1」の中で変数「g_hensu1」に値を設定して、関数「func2」の中で変数「g_hensu1」の中身を覗いたりできます。
変数「l_hensu2」は関数「func1」の中にある変数です。
関数「func1」の中だけで使えます。
関数「func2」の中では使えません。
変数「g_hensu1」と変数「l_hensu2」は、それぞれ
変数「g_hensu1」:どこからでも使える変数
変数「l_hensu2」:縄張りの中だけで使える変数
です。
この2つの変数のうち、縄張りの中だけで使える変数「l_hensu2」がローカル変数です。
どこからでも使える変数「g_hensu1」がグローバル変数です。
ここまでの説明がよく分からなかったり細かいことを考えるのが面倒くさい人は
普通の変数がローカル変数
と捉えても かまいません。
有名どころのプログラミング言語であれば(基本的には)普通に宣言した変数はローカル変数になります。
ただし、JavaScriptは例外です。
ご注意ください。
JavaScriptでは先頭に「var」を付けて
var i = 1;
のように書くとローカル変数になります。
何も付けないで
i = 1;
と書くとグローバル変数になります。
ちなみに変数をローカル変数にした方が良いかグローバル変数にした方が良いか迷った場合は、できるだけローカル変数にしてあげてください。
グローバル変数の方がいろいろ楽チンだし手っ取り早く感じることもあるでしょうけどね。
グローバル変数は
どこからでも値を設定できるので、いつどこで値が書き換えられているか分かりにくい
という弱点があります。
特に複数人で1つのプログラムを作る場合は
1.ピヨ太君が作った関数1でグローバル変数に「1」という値を設定した
2.ピヨ子さんが作った関数2でグローバル変数に「2」という値を設定した
3.ピヨ太君が、グローバル変数に「1」が入っている前提で関数3を作った(けど実際には関数2でグローバル変数の値が「2」に変わっていた)
みたいなことが起こったりするわけです。
そのため、お仕事でプログラムを作るときなんかは「グローバル変数は(できるだけ)使うな!」と言われたりします。
一言でまとめるよ
まぁ「局所変数」って単語が出てきたら「縄張りの中だけで使える変数
(プログラミングにおける値を入れておく箱)なんだな~」と お考えください。
おまけ
■検索してみる?






