JavaScript 制御構造のソースを表示
新しいページはコチラ
移動:
案内
,
検索
[[JAVA Script#リファレンス]]に戻る。 == コメント == 命令文の中に記述するコメントの記載方法はC++言語と同じです。 *// :行頭および命令文中に上記のキーワードがあった場合、その行のそれ以降の文字はコメントとして扱われます。 */*~*/ :/*以降は次に*/のキーワードが登場するまですべてコメントとして扱われます。 サンプル <syntaxhighlight lang="javascript" line start="1"> <HTML> <HEAD> <TITLE>JavaScript 制御構造 コメント</TITLE> <SCRIPT Language="JavaScript"> <!-- // alert("コメント1"); /* alert("コメント2"); */ --> </SCRIPT> </HEAD> <BODY> JavaScript 制御構造 コメント </BODY> </HTML> </syntaxhighlight> [[Media:JavaScript SeigyoKozo Comment.html|実行結果サンプル]] 実行結果サンプルは処理するというよりは、コメント化されていて、何もJAVAスクリプトの動作がないということを確認するだけのつまらないものです。 == 条件分岐 == これもC++言語に酷似しています。 === if(条件)~else if(条件)~else~ === *if(条件) :これが条件分岐の基本です。例えば *if(i > 2) alert("条件成立"); :のようにifによる条件判定の結果、処理する内容が1命令なら、{}を利用することなく、条件成立時の処理をifの後ろに続けて書くことができます。例えば、条件判定の結果、処理する内容が2命令以上なら{}の範囲を条件成立時の処理内容として定義できます。 *if(i > 2) {alert("条件成立");alert("条件成立後処理2"); :と、こんな具合だ。実際には一行に書かずにプログラムをインデントして記述するのが通常だ。 :基本を発展させていくと、条件非成立時の処理をelseの後ろに記述できます。例えば *if(i > 2) alert("条件成立"); else alert("条件非成立"); :とこんな具合だ。これも実際には改行を適宜挿入し、インデントして記述する。処理内容が複数あれば、{}を使うのは同様。 *if(i > 2) alert("2より大きい");else if(i < 0) alert("0より小さい"); else alert("条件非成立"); :else ifにより最初ifの条件には当てはまらないが、else ifの条件に当てはまる場合の処理のような記述ができる。 サンプル <syntaxhighlight lang="javascript" line start="1"> <HTML> <HEAD> <TITLE>JavaScript 制御構造 if</TITLE> <SCRIPT Language="JavaScript"> <!-- var i = 4; //条件成立後処理が1命令の場合({}不要) if(i > 2) alert("条件成立コメント1"); //条件成立後処理が2命令の場合({}利用) if(i > 2){ alert("条件成立コメント2-1"); alert("条件成立コメント2-2"); } i = 0 //条件非成立時処理のelseを使ったサンプル if(i > 2){ alert("条件成立コメント3-1");//※a.1命令でも{}で処理範囲を指定してもよい。 } else{ alert("条件非成立コメント3-1"); } i = -1 //条件非成立時処理のelseを使ったサンプル if(i > 2){ alert("条件成立コメント4-1"); } else if(i < 0){ alert("条件非成立後の条件2成立時コメント4-1"); } else{ alert("条件非成立コメント4-1"); } --> </SCRIPT> </HEAD> <BODY> JavaScript 制御構造 if(本文が表示されるまでに何度かダイアログが表示されます。) </BODY> </HTML> </syntaxhighlight> [[Media:JavaScript SeigyoKozo if.html|実行結果サンプル]] 実行の結果、ダイアログが表示されて、「条件成立コメント1」→「条件成立コメント2-1」→「条件成立コメント2-2」→「条件非成立コメント3-1」→「条件非成立後の条件2成立時コメント4-1」という具合に一連のダイアログ表示処理がされてからbody部の記述が始まり、本文が表示されるような動作になります。もし、訪問しただけで、こんなにダイアログが表示されるJavaScriptが動作するような、こんなサイトがあったらうざくてしょうがないっすね。 === switch(判定変数)case 条件値:~default === *switch(a){ case 1: alert("a = 1 です。");break; default: alert("a = 1 以外です。");} っていう感じで、使います。switch(判定変数)のようにして判定変数部分に条件評価される変数を固定して分岐する場合に使います。if文ばっかりで攻めるのも良いですが、判定変数を固定する分岐の場合には潔くswitchを使いましょう。意外とコードを入力する労力の低減やコードの見易さが良くなるといった効果を得られるものです。case 1:のようにするとaが1だったら、それ以降を処理するという分岐になります。違ったらもちろん次のcase *: の条件判定指示がある部分までスキップします。ただし、上記例文のようにcase 1:の処理が終わっても次の判定とかはやらないで、全部を処理し始めるので、処理を終わらせたいところではbreak; のようなswitch構造から抜け出す命令を記述しないとだめです。またif文のelse句に相当するものとしてdefault: という具合にして条件判定をしないで、すべてを受け入れる記述で、どのcaseにもあてはまらなかった場合の全てのパターンを受け入れる指定ができて、まるでif文のelse句のような働きとして、どれにもあてはまらないときの処理が記述できます。 長くなりましたが、switch文による分岐命令の説明はそんなところです。break;とかdefault:とか覚えなきゃいけないし、if文より数段ややこしくてヤダ?そう思う人もいるかもしれません。でも、これは身に着けておいたほうが良いと思いますよ。あらゆるプログラミング言語でこのswitchのような構造を取り入れようとする動きがあるくらいに普通に使われる制御構造です。 サンプル <syntaxhighlight lang="javascript" line start="1"> <HTML> <HEAD> <TITLE>JavaScript 制御構造 switch</TITLE> <SCRIPT Language="JavaScript"> <!-- var i = 4; //条件成立後処理が1命令のswitch文を使うほどでもない例 switch(i){ case 4: alert("i = 4 です。"); } //break文を使っていないswitch構文の動作 switch(i){ case 4: alert("i = 4 です。"); case 5: alert("i = 4 か i = 5 です。");//break文がないのでi = 4のときも処理される命令です。 } //break文を使ったswitch構文の動作 case:5 の時の処理はi=5に限定される。 switch(i){ case 4: alert("i = 4 です。"); break; case 5: alert("i = 5 です。"); } //break文を使ったswitch構文の動作 case:5 の時の処理はi=5に限定される。 i = 5; switch(i){ case 4: alert("i = 4 です。"); break; case 5: alert("i = 5 です。"); } i = 0; //default文を使ったswitch構文の動作 caseに当てはまらなかった時の処理 switch(i){ case 4: alert("i = 4 です。"); break; case 5: alert("i = 5 です。"); break; default: alert("i は4,5ではありません。"); } --> </SCRIPT> </HEAD> <BODY> JavaScript 制御構造 switch(本文が表示されるまでに何度かダイアログが表示されます。) </BODY> </HTML></syntaxhighlight> [[Media:JavaScript SeigyoKozo switch.html|実行結果サンプル]] 実行結果では、制御構文どおりに動作して、ダイアログが表示されます。このサンプルなかなかウザい。次から少し面白味のあるものに変えようと思います。とりあえず、動作としては、(1.[i = 4 です。])→(2.[i = 4 です。]→[i = 4 か i = 5 です。])→(3.[i = 4 です。])→(4.[i = 5 です。])→(5.[i は4,5ではありません。])と、こういう具合で、5つのswitch構文を処理します。 == 繰り返し == これもC++とよく似ていますが、VBAやVBと同じように、for構文でオブジェクトの要素全体を最初から最後までひとつづつ変数に代入しながら処理を繰り返す in を 使った表現ができるというのはC++言語にはない記述方法ではないでしょうか? === for(初期化;条件;条件値変化量処理)~ === *for(var i = 0;i < 5;i++){ document.write("i = " + i +"<br />"); } :のようにfor()内に初期化;繰り返し条件;繰り返しに必要な変数変化量を記述し、繰り返し条件が成立している間、for構文に続く処理を繰り返します。if文と同じように1命令なら{}は省略できますが、2命令以上をまとめて繰り返しの処理にしたい場合は全体を{}で囲います。繰り返し処理はプログラムをする上で人間が最も楽をすることのできる処理です。何度も何度も同じような処理をするのが嫌だからコンピュータにやってもらうのです。この制御構文を学ぶことがプログラムをすることの喜びを感じれる部分だと思います。楽しいだろぉ?プログラム。 サンプル === for(変数 in 配列要素オブジェクト)~ === === 初期化 while(条件)~条件値変化量処理~ === === 初期化 do~条件値変化量処理~while(条件) === == ループ制御 == === continue === === break === == 変数 == === var 生成 === === const 定数 === === オブジェクト 生成 === === delete 消滅 === === this === === with 省略表記 === == 関数 == === function 関数 === [[JAVA Script#リファレンス]]に戻る。
JavaScript 制御構造
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ