命令文と判定式

Last-modified: 2007-02-01 (木) 19:53:57

命令文と判定式

命令文というのは他言語でいうprintやinputなど、コンピュータにあれをやれ、これをやれと命令する文のことです。専門的な言葉で言うと処理、というのがこれに当てはまります。
判定式というのは制御式というもののことです。一番代表的なのはif(条件式){}で、これはもしも条件式が正しければ{}内の処理を行うということをあらわしています。

 

ぱっと考えるとまったく別の働きをするものと考えてしまいますが、実はこの2つは密接な関係にあります。

なぜなら、判定式は正しい命令文(処理)にコンピュータの動作を案内するための看板だからです。
コンピュータは処理と判定式のみで成り立っているといってもけして過言ではありません。

なので、命令文と判定式、それに加えてほんのちょっとのプログラミング知識さえ理解していれば、自分の意図したスクリプトを書いていくことができます。
(関数やイベントについては全て暗記するのは面倒なので、その都度で必要なものを探して使えば大丈夫です。使っていくうちに頭が勝手に覚えてくれます)

 

命令文と判定式を使ったアルゴリズムを紹介します。
(C言語で紹介しますが要領はほとんど同じです)

 

01行目:void main()
02行目:{
03行目: int count;
04行目:
05行目: count = 0;
06行目:
07行目: for ( ; count < 5; ) { 
08行目: printf( "countは今%dです\n", count ); 
09行目:
10行目: count++;
11行目 }
12行目}

http://www.sgnet.co.jp/c/3-1.htmより引用

 

1行目。ここは関数、つまり玄関です。LSLとは多少文法が違いますが気にしないでください。
3行目。intは数値を入れる変数(器)をつくるための命令文です。つまりここでは、"count"という名前の変数を用意しているわけです。
5行目。countに0という数字を入れています。
7行目。forというのは()内の計算式が正しい限り後に続く{}の内容を繰り返すという意味の判別式です。これはcountが5未満であれば{}を何度でも繰り返すということになります。
8行目。printfはメッセージを出力(モニターに表示)する命令文です。"countは今%dです"と表示します。ですが後に変数countを使うように指示されていますので、%dの部分に指示されたcountの数値を入れます。\nは改行するという意味です。
10行目。++というのは前に書かれた変数に1を足すという意味です。+1と書いても良いところなのですが、大抵のスクリプトでは++という記述がメジャーです。(反対に--と書くと1を引くという意味になります)

で、これがどういう風に出力されるかというと、

 

countは今1です。
countは今2です。
countは今3です。
countは今4です。

 

と、表示されます。

という風に、命令文と判定式の関係はLSLに限らず、ほとんどのスクリプト言語で有効です。
LSLを勉強していたつもりがいつの間にかC言語もわかるようになっているというすばらしい話です。

LSLは遊び感覚で学べるので、プログラミング言語を学ぶ際はSLが効果的です。とリンデンラボの宣伝でもしておきます。