25.e. 条件分岐

目次へ 前の項目へ次の項目へ

条件分岐は、本来ならばループの前に紹介するべきであるくらい重要な概念です。 すっきりと割り切ってyesかnoかで判断するのが得意なコンピュータですから、処 理をどのように進めていくか、厳密に判断するのがここで紹介する条件分岐になり ます。

条件分岐の代表的な命令はどの言語でも if です。この if に より処理の流れを整理する構文を if 文と呼びます。使い方の例は以下 のようになります。

a = ARGV.shift.to_i
if a >= 0
  puts a
else
  puts -a
end

ここでは、少し難しい命令も出てきています。ARGV とは、大文字で始まっているこ とから分かるように「定数」です。どのような定数かというと、プログラムを実行 する際にコマンドラインから入力する「引数(ひきすう)」と呼ばれるものです。ま た、shift というのは、要素を順番にずらす操作を行う命令です。さら に、それらが . (ドット)によって、結合されていますが、これはRubyの やり方で、ARGV shift という処理を行いなさいということ を示しています。さらに、to_i というのまでくっついています。これは、 その値を整数にしなさいという命令です。人間は数字を見るとなんとなく計算でき る数値と思いますが、コンピュータは数字も文字もともに「文字」なので、計算さ せるためには、今入れた数字は数値なんだよ、と教えてあげることが必要になる場 合があるのです。このように ドットによりいくつでも処理をつなげられるので、実は、かなり の処理が一行で書けてしまうのもRubyの特徴です。

もうひとつ、else というのも新しく出てきました。このように、プログ ラミング言語の命令はたとえ日本人が開発していても英語を基本にします。世界中 の人に使ってほしいからです。英語の意味が分かれば、それだけ、プログラミング 言語の習得も楽になります。ここでの else はそのものずばりの意味で 「そうでなければ」ということです。

では、実行してみましょう。今度は、今までと少しだけ様子が違います。適当な名 前 (たとえば if.rb ) で今のスクリプトを保存したら、次のようにター ミナルに入力します。

$ ruby if.rb -5

いままでの、ruby ???.rb の形式ではなく、数字が後についています。 これが、コマンドライン引数と呼ばれるもので、処理を行わせる数値を入力してい ます。ここには、自分の好きな数字を入れてかまいません。結果はどうなったでしょ うか。数学の基本的なことですので、知っている人は分かったと思います。


ページの先頭へ目次へ 前の項目へ次の項目へ