第2講 変数を理解しよう
第1話 変数とは何か?
皆さん、第2講では変数を扱っていきます。
変数というと、数学を連想し身構えてしまう方もいらっしゃるかもしれませんが、
苦手意識を持つ必要は全くありません。
変数とは、数字や文字を入れる箱です。
これ以上難しく考える必要はさらさらありません。
では、例を作って説明していきましょう。
次のようなForm1を作り、ビルド(F5押すこと)して、
すべてのLabelに「Visual Basicの世界にようこそ!」と表示させるプログラムを考えてみましょう。
コーティング(プログラムの文章を書くこと)は、
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Label1.Text = "Visual Basicの世界にようこそ!"
Label2.Text = "Visual Basicの世界にようこそ!"
Label3.Text = "Visual Basicの世界にようこそ!"
Label4.Text = "Visual Basicの世界にようこそ!"
Label5.Text = "Visual Basicの世界にようこそ!"
Label6.Text = "Visual Basicの世界にようこそ!"
End Sub
End Class
でもいいわけですが、これだと少し芸がありません。
同じことの繰り返しだからです。
繰り返しはコンピュータにやらせるべきで、人間は極力作業量が少なくなるようにすべきです。
そこで文字や数字を収納する箱=変数を用意します。
変数名=箱の名前は、禁則を犯さなければ自由につけることができます。
禁則は、始めに数字が来てはいけない等ですが、
基本的にアルファベット、_(アンダーバー)、数字であれば自由につけられます。
さらに、Visual Basicは幸いなことに変数名に漢字を使うことができます。
現在のVisual Basicの入門書やネットの初心者のためのページでは、
変数名を非常に長い難しい英単語で書くことを推奨しています。
ところが、変数名を難しい英単語にしていることが、初心者の理解を妨げる原因になっています。
初心者からすればForやIfなどVisual Basicの文法で定められている単語と自由につけられる変数名との区別が困難であるからです。
初心者は、変数を難しい英単語で書かれると、必ずそう書かなければならないと思ってしまうことに、
入門書の著者たちは思いが至らないのです。
短い変数名で貫いている私のVC++講義が各検索エンジンで1位にランクされ、
1日のトータルアクセスで3000から4000を数えていることが、
長くて難しい英単語の変数名が、如何に初心者の理解を妨げていたかを、如実に語っているといえます。
コンピュータのメモリが小さかった頃は、変数名が短かったのですが、
メモリが大きくなってくると、変数名は何を表すかが明確になるように長い英単語で書くべきだとされてきたのです。
入門系のプログラミングのサイトとしては、VC++講義はダントツのトップです。
おそらく、変数名の付け方にまた革命が起きることでしょう。
本サイトによって、短い変数名が見直されるようになるでしょう。
例えば、1文字の変数でも、注釈文などで説明しておけば、混乱することはありません。
注釈文とは後でも説明しますが、冒頭に'のついた文章でこれをコンピュータは読み飛ばします。
つまり、注釈文はプログラムに何の影響も与えないのです。
注釈文は何のためにあるかといいますと、あくまで人間のためのものです。
プログラムを読んでいる人が理解できるように解説したものが、注釈文です。
というわけで、本講座においては変数名は、基本は2文字以下のアルファベットと数字の組み合わせか、
漢字を使用します。
変数に戻りましょう。変数とは名前のついた箱です。
箱の名前が変数名です。
文字型変数であれば、箱の中に文字が、
整数型変数であれば数字が入ります。
文字型変数の場合
整数型変数の場合
変数名がaの文字型変数を用意するには、
Dim a as String
と書きます。Dimは定義(あるいは宣言)、asは「として」、Stringは文字を意味しますので、
Dim a as Stringの意味は、aを文字型の変数として定義または宣言します、という意味になります。
さて、この変数を使って先のコーティングを書き直すと、
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim a As String
a = "Visual Basicの世界にようこそ!"
Label1.Text = a
Label2.Text = a
Label3.Text = a
Label4.Text = a
Label5.Text = a
Label6.Text = a
End Sub
End Class
となります。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Label1.Text = "Visual Basicの世界にようこそ!"
Label2.Text = "Visual Basicの世界にようこそ!"
Label3.Text = "Visual Basicの世界にようこそ!"
Label4.Text = "Visual Basicの世界にようこそ!"
Label5.Text = "Visual Basicの世界にようこそ!"
Label6.Text = "Visual Basicの世界にようこそ!"
End Sub
End Class
と比べると大分すっきりしました。
皆さん、コードを書き直しF5を押してビルドしてソフトを立ち上げ、実行ボタンを押してみましょう。
さて、コードを
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim 変数 As String
変数 = "Visual Basicの世界にようこそ!"
Label1.Text = 変数
Label2.Text = 変数
Label3.Text = 変数
Label4.Text = 変数
Label5.Text = 変数
Label6.Text = 変数
End Sub
End Class
と変更してもビルドエラーしないことを確認して下さい。
変数名を漢字にするとVisual Basicの文法で定められた英単語(これを予約語という)と変数の違いが一目瞭然になります。
ただし、変数名以外はスペースを含めて全角文字を使ってはいけませんので、変数を漢字にするときはご注意ください。
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
数学研究室に戻る