2014年5月29日木曜日

Lesson 15: 制御文

このサイトは移転しました。1秒後に自動でジャンプします。
移動しない場合は、ここをクリックしてください。



ある条件を満たすときにだけ、特定の命令を実行させたい、ということがあります。

JavaScriptでも、他の言語同様に制御文があり、if文とswitch文が用意されています。
if文は、ある条件を満たすかどうか、switch文は取りうる値ごとに処理を分岐させたい場合に使用します。

if文の例


if文はある条件を満たす場合に実行したい処理を記述します。
else、else ifを用いて、条件が満たなかったときに実行したい処理や、さらに次の条件を記述することができます。
<!DOCTYPE html>
<html>
<head>
  <title>Lesson15-1</title>
</head>
  <body>
    <script>
      var value = prompt("Input number");
      var message;

      if(value == null || value == "") {
        message = "Not specified.";
      } else if (isNaN(value)) {
        message = value + " is not number.";
      } else {
        message = value + " is number.";
      }
      alert( message );
    </script>
  </body>
</html>


switch文の例


とりうる値によって処理を複数に分岐させたい場合は、if、else ifで一つずつ列挙してもよいですが、switch文を使用する方がシンプルでよいです。
caseごとに処理を記述します。各caseの終わりにbreakを入れないと、処理が突き進んでいきますので注意してください。
なお、caseで列挙した条件に合致しない場合、defaultで指定した処理が実行されます。

<!DOCTYPE html>
<html>
<head>
  <title>Lesson15-2</title>
</head>
  <body>
    <script>
    var day;
    switch (new Date().getDay()) {
    case 0:
        day = "Sunday";
        break;
    case 1:
        day = "Monday";
        break;
    case 2:
        day = "Tuesday";
        break;
    case 3:
        day = "Wednesday";
        break;
    case 4:
        day = "Thursday";
        break;
    case 5:
        day = "Friday";
        break;
    case 6:
        day = "Saturday";
        break;
    default:
        // bug
        break;
    }
    alert("Today is "+ day);
    </script>
  </body>
</html>

2014年5月21日水曜日

子どもに教えたいこと


このサイトは移転しました。5秒後に自動でジャンプします。
移動しない場合は、ここをクリックしてください。



地球の歴史

この地球上に生命が誕生したのは、今から約38億年前といわれています。
様々な環境の変化と、それに適応すべく進化を繰り返しながら、次の世代、その次の世代へとずっと引き継がれて、今ここに私たち人類が存在していると言われています。

長い年月をかけて、生命は進化を遂げてきました。原始の海で生命が生まれ、やがて陸に上がって、ある動物は空を跳び、ある動物は知性を手にして、火や道具を扱えるまでに進化を遂げたと言われてます。

人類の歴史

この壮大な地球の歴史、生命の歴史に比べれば、人類の歴史はほんのごく一瞬に過ぎません。
その短い期間に、人類が著しい生物学的な進化を遂げているというわけではありませんが、その代わりに、文明を築いて、その文明が大きく発達してきました。
これを『進化』と捉えると、科学技術が著しく発達し、コンピュータが発明され、世界中がインターネットで結ばれて、様々な文化が大きく影響しあって、新しい文化を生み出している今の状況は、現代のカンブリア大爆発といえるかもしれません。

驚くべきことに、コンピュータを取り巻く情報革命はまだ新しい扉を開いたに過ぎないことです。100年後、200年後、1000年後の社会はどうなっているのか、人類がどう『進化』していくのが、まったく想像さえもつきませんが、私たちがいるこの時代が、人類の歴史的な転換点に位置すると考えると、何だかとてもワクワクします。


未来を育てること

今、私たちが過ごしているこの時代は、これからもずっと続いていくだろう地球の歴史の中の、ほんの1ページにしか過ぎませんが、私たちがこうして生まれ育ってきたように、はるか昔から続く生命の連続性が途絶えることなく次の世代へと引き継いでいけるよう、これからを担っていく子どもたちが安心して育っていってほしいと願っています。

子どもを育てるというのは、未来を育てることだと考えています。
素敵な未来を育てていくために、自分には何ができるだろうと最近いつも考えています。その答えはまだ見出せていませんが、まずは自分の息子をしっかり育てていくことからはじめたいと考えています。
そして、コンピュータを仕事としている自分が息子に教えられることの一つ、それがプログラミングであり、まずは自分の息子に教えることを第一目的に、本blogを書きはじめました。


ツールとしてのコンピュータ

コンピュータは人類が創りだしたもっとも画期的な道具の一つです。
計算を自動で行うことを目的に開発されたコンピュータですが、今ではインターネットを通じて世界中のあらゆるな情報を処理することもできる、社会基盤として不可欠な存在となっています。
コンピュータについて知っておくことは、今後ますます重要となっていくでしょう。

息子がコンピュータのスペシャリストを目指す必要はないと考えています。ただ、国語や算数と同じように、コンピュータを十分に活用できる知識は持ち合わせてほしいと考えています。
クルマの仕組みが分からなくても、クルマの運転を行うには十分かもしれません。コンピュータもアプリケーションが充実しており、中身を知らなくても十分に使いこなせるでしょう。
ただ、ちょっと作業の自動化を図りたいときときとか、プログラムをささっと書いてラクできるくらいの能力は身につけてほしいですし、また、プログラミングを通じて物事を順序立てて考える力も養うことができればと願っています。

2014年5月13日火曜日

Lesson14: 配列

このサイトは移転しました。5秒後に自動でジャンプします。
移動しない場合は、ここをクリックしてください。



Lesson12では変数について説明しました。数値や文字列などのデータを格納する『箱』で、その箱には名前を付けることができるというものでした。
配列は、一つの箱に複数のデータをまとめて入れることができる入れ物です。
例えば、以下のように、変数weeksには、7つのデータ(配列要素)を格納することができます。
// 曜日
var weeks=["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];

『配列にすると何がうれしいの?』、『var sun="Sun"; var mon="Mon"; ・・・ と定義してもいいんじゃないの?』と疑問に思うかも知れません。
そういう疑問は、プログラミングに限らず、何かを学ぶというときにとても大切なものです。

配列を使うメリットは、たとえば、for文などを使った繰り返しを行う場合です。
var i;
for( i = 0; i<weeks.length; i++ ) {
    document.write( weeks[ i ] + " " );
}
以下のように表示されます。
Sun Mon Tue Wed Thu Fri Sat

これは、以下のように書いたのと同等です。要素は、配列の0番目から順に格納されており、一つずつ参照することができます。
document.write( weeks[0] );
document.write( weeks[1] );
document.write( weeks[2] );
document.write( weeks[3] );
document.write( weeks[4] );
document.write( weeks[5] );
document.write( weeks[6] );

今回は配列要素は7個だけですが、要素が多い場合、for文を使って繰り返す書き方が便利ですね。

配列については、また今度、詳しく説明していきたいと思います。

2014年5月11日日曜日

Lesson13: 文字列操作(Stringクラス)


このサイトは移転しました。1秒後に自動でジャンプします。
移動しない場合は、ここをクリックしてください。



JavaScriptで文字列の長さを求めたり、文字列内の特定文字列を置き換えたり、文字列操作を行うための方法について例を上げて説明します。


■文字列の定義

文字列の宣言は、以下のいずれも同じです。JavaScriptでは、ダブルクォート(")で括るか、シングルクォート(')で括るかで違いはありません。(言語によって、違いがあります)
var str = "文字列";
var str = '文字列';
var str = new String("文字列");
var str = new String('文字列');


■lengthプロパティ: 文字列の長さ

文字列の長さは、lengthプロパティで取得でます。
var str = "文字列";
var res = str.length;
変数resに3が格納されます。


■indexOf()メソッド: 指定した文字列が最初に出現する位置を調べる

var str = "あいうえお";
var res = str.indexOf("うえ");
変数resに2が格納されます。(開始位置は0から数えます)


■lastIndexOf()メソッド: 指定した文字列が最後に出現する位置を調べる

var str = "ABCABCABC";
var res = str.lastIndexOf("AB");
変数resに6が格納されます。


■substr()メソッド: 指定した範囲の文字列を切り出す

var str = "ABCDEFG";
var res = str.substr(1, 3);
変数resに"BCD"が格納されます。


■replace()メソッド: 文字列を置き換える

文字列を置き換える方法として、大きく2つがあります。
○replace(文字列, 置換文字列)  単純な置換
var str = "abcdefABCDEFABCDEF";
var res = str.replace("ABC", "XYZ");
変数resには "abcdefXYZDEFABCDEF" が格納されます。
最初に見つかった "ABC" のみが "XYZ" に置換されます。
○replace(正規表現パターン, 置換文字列) 正規表現を用いた置換
特定の文字列ではなく、あるパターンに一致する文字を置換したいという場合に、そのパターンを表現するために正規表現(Regular Expression)というものがあります。
正規表現は、JavaScriptに限らず多くのプログラム言語や、文章を編集するためのテキストエディタなど、コンピュータの様々なところで使われるたいへん便利なものです。
詳細は、後日RegExpクラスを説明するときに教えたいと思います。

正規表現を用いた置換の例を挙げます。

var str = "FirstName LastName";
var res = str.replace(/(\w+)\s(\w+)/, "$2 $1");
変数resには "LastName FirstName" が格納されます。
正規表現パターンは引用符(" または')で括らず、/と/の間に記載します。