JavaScript - 関数


■ページ目次

Top

■関数

Top
■関数の作成と利用
Top
■例題
  1. プロンプトから入力した値が0-100か否かを表示するサンプル "ArgsCheck01.html" です。このとき、値の検査をする関数argsCheck()を作り、それを利用します。
    1. <!-- ArgsCheck01.html -->
    2. <html>
    3. <head>
    4. <title>わたしのホーム・ページ</title>
    5. <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"/>
    6. <script type="text/javascript">
    7. <!--
    8. function argsCheck(n) {
    9. if (n < 0 || n > 100) { // "||" は、論理演算子です。
    10. return false;
    11. }
    12. return true;
    13. }
    14. //-->
    15. </script>
    16. </head>
    17. <body>
    18. <script type="text/javascript">
    19. <!--
    20. var n = parseInt(prompt("0-100の数値を入力してください。", 0));
    21. if (argsCheck(n)) {
    22. document.write(n + " は範囲内です。");
    23. } else {
    24. document.write(n + " は範囲外です。");
    25. }
    26. //-->
    27. </script>
    28. <noscript>JavaScriptが使用できません。</noscript>
    29. </body>
    30. </html>
  2. プロンプトから0-100の値を入力するサンプル "ArgsCheck02.html" です。このとき、入力した値が誤りであれば、メッセージを出し、正しい値が入るまで入力を促します。
    1. <!-- ArgsCheck02.html -->
    2. <html>
    3. <head>
    4. <title>わたしのホーム・ページ</title>
    5. <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"/>
    6. <script type="text/javascript">
    7. <!--
    8. function argsCheck(n) {
    9. if (n < 0 || n > 100) {
    10. return false;
    11. }
    12. return true;
    13. }
    14. function getValidNumber() {
    15. var n;
    16. while (true) {
    17. n = parseInt(prompt("0-100の数値を入力してください。", 0));
    18. if (argsCheck(n)) {
    19. break; // ループを終了します。
    20. }
    21. alert("入力値の誤りです。");
    22. }
    23. return n;
    24. }
    25. //-->
    26. </script>
    27. </head>
    28. <body>
    29. <script type="text/javascript">
    30. <!--
    31. document.write(getValidNumber());
    32. //-->
    33. </script>
    34. <noscript>JavaScriptが使用できません。</noscript>
    35. </body>
    36. </html>
Top
■JavaScriptファイルの利用
Top
■例題
  1. 上記のプロンプトから0-100の値を入力するサンプル "ArgsCheck02.html" の argsCheck(n) 関数と getValidNumber() 関数を外部のJavaScriptファイル"ArgsCheckUtil.js" に入れてください。またこれを確認するHTML "ArgsCheck03.html" もあわせて作成してください。

    "ArgsCheckUtil.js"

    1. /**
    2. * 引数が 0 以上 100 以下かどうかを検査する。
    3. * @param n 検査する整数値。
    4. * @return 範囲内であれば true、範囲外のとき false を返す。
    5. */
    6. function isValidNumber(n) {
    7. return n >= 0 && n <= 100;
    8. }
    9. /**
    10. * 妥当な整数値(0 以上 100 以下)をプロンプトから取得する。
    11. * @return 妥当な整数値を返す。
    12. */
    13. function getValidNumber() {
    14. var n;
    15. while (!isValidNumber(n = parseInt(prompt("0-100の数値を入力してください。", 0)))) {
    16. alert("入力値の誤りです。");
    17. }
    18. return n;
    19. }

    "ArgsCheck03.html"

    1. <!-- ArgsCheck03.html -->
    2. <html>
    3. <head>
    4. <title>わたしのホーム・ページ</title>
    5. <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"/>
    6. <script type="text/javascript" src="ArgsCheckUtil.js"></script>
    7. </head>
    8. <body>
    9. <script type="text/javascript">
    10. <!--
    11. document.write(getValidNumber());
    12. //-->
    13. </script>
    14. <noscript>JavaScriptが使用できません。</noscript>
    15. </body>
    16. </html>
Top
■実習
  1. コンピューターとじゃんけんをするHTML "Janken11.html" と、ここで使う関数をまとめたJavaScriptファイル"JankenUtil.js" を作ります。

    プロンプトから入力した値が 0 (ぐー)、1 (ちょき)、2 (ぱー)として、勝負します。なお、-1 (終了)のときは、何も行わないようにします。

    このとき、上記サンプルの "ArgsCheck02.html" で作った getValidNumber() 関数に加えて、じゃんけんの勝負結果を戻す関数 janken() をつくります。この関数は、ユーザーが勝てば 1 を、負ければ -1 を、引き分けなら 0 を戻すようにします。

    "JankenUtil.js"

    1. /**
    2. * 引数が -1 以上 2 以下かどうかを検査する。
    3. * @param n 検査する整数値。
    4. * @return 範囲内であれば true、範囲外のとき false を返す。
    5. */
    6. function isValidNumber(n) {
    7. return n >= -1 && n <= 2;
    8. }
    9. /**
    10. * 妥当な整数値(-1 以上 2 以下)をプロンプトから取得する。
    11. * @return 妥当な整数値を返す。
    12. */
    13. function getValidNumber() {
    14. var n;
    15. while (!isValidNumber(n = parseInt(prompt("-1(終り), 0(ぐー), 1(ちょき), 2(ぱー) を入力してください。", 0)))) {
    16. alert("入力値の誤りです。");
    17. }
    18. return n;
    19. }
    20. /**
    21. * ユーザー1と2でじゃんけんをする。
    22. * @param user1 ユーザー1。
    23. * @param user2 ユーザー2。
    24. * @return ユーザー1 が勝てば 1、負ければ -1、引き分けは 0 を返す。
    25. */
    26. function janken(user1, user2) {
    27. // ここにコードを記述してください。
    28. }

    "Janken11.html"

    1. <!-- Janken11.html -->
    2. <html>
    3. <head>
    4. <title>わたしのホーム・ページ</title>
    5. <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"/>
    6. <script type="text/javascript" src="JankenUtil.js"></script>
    7. </script>
    8. </head>
    9. <body>
    10. <script type="text/javascript">
    11. var kekka = janken(getValidNumber(), Math.floor(Math.random() * 3));
    12. document.write("<p>");
    13. if (kekka == 1) {
    14. document.write("あなたの勝ち");
    15. } else if (kekka == 0) {
    16. document.write("引き分け");
    17. } else {
    18. document.write("あなたの負け");
    19. }
    20. document.write("</p>");
    21. //-->
    22. </script>
    23. <noscript>JavaScriptが使用できません。</noscript>
    24. </body>
    25. </html>
  2. 上記のじゃんけんを連続して、勝負結果表示するHTML "Janken12.html" を作ります。プロンプトから入力した値が -1 になるまで勝負を繰り返します。

    1. <!-- Janken12.html -->
    2. <html>
    3. <head>
    4. <title>わたしのホーム・ページ</title>
    5. <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"/>
    6. <script type="text/javascript" src="JankenUtil.js"></script>
    7. </head>
    8. <body>
    9. <script type="text/javascript">
    10. var win = 0;
    11. var draw = 0;
    12. var lose = 0;
    13. var u;
    14. while ((u = getValidNumber()) != -1) {
    15. var kekka = janken(u, Math.floor(Math.random() * 3));
    16. document.write("<p>");
    17. // ここにコードを記述してください。
    18. document.write("</p>");
    19. }
    20. document.write("<hr/><p>" + win + " 勝 " + lose + " 敗 " + draw + " 分 " + "</p>");
    21. //-->
    22. </script>
    23. <noscript>JavaScriptが使用できません。</noscript>
    24. </body>
    25. </html>
Top

inserted by FC2 system