FizzBuzz

こんばんは

 

今月から始めたブログもさっそく、さぼりがちですが更新です。

 

先週、初めて自分で組んだプログラムFizzBuzzのソース載っけておきます。

 

FizzBuzzとは - はてなキーワード

まず、FizzBuzzは海外の遊びで1から順番に数えていって

3で割り切れるときはFizz

5で割り切れるときはBuzz

3と5で割り切れるときはFizzBuzzって言っていく遊びらしいです。

まぁ世界のナベアツみたいなもんです。

 

今回のプログラムは入力した開始値から終了値までふぃずばずするようにしました。

 

index.php

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>fizzbuzz</title>
</head>

<body>

<form method="post" action="/hayama_test/fizzbuzz/fizzbuzz.php">
    <p>開始値を整数で入力してください</p>
    <input type="text" value="" name="num1"><br>
    <p>終了値を整数で入力してください</p>
    <input type="text" value="" name="num2">
    <input type="submit" value="開始" name="start">
</form>

</body>

fizzbuzz.php

<?php

if (isset($_POST["start"])) {

    $num1 = mb_convert_kana($_POST["num1"], "a", "UTF-8");
    $num2 = mb_convert_kana($_POST["num2"], "a", "UTF-8");

    if (ctype_digit($num1) == false || ctype_digit($num2) == false) {
        echo htmlspecialchars("整数を入力してください");
    }else{
        if(isset($_POST["start"])){

            $n = sprintf("%0d",$num1);

            $m = sprintf("%0d",$num2);

            if ($num1 > $num2) {
                echo htmlspecialchars("開始値が終了値を超えています");
            }else{
                for($n; $n <= $m; $n++){

                    if($n % 3 == 0 && $n % 5 == 0){
                        echo htmlspecialchars("fizzbuzz¥n¥n");
                    }elseif($n % 3 == 0){
                        echo htmlspecialchars("fizz¥n¥n");
                    }elseif($n % 5 == 0){
                        echo htmlspecialchars("buzz¥n¥n");
                    }else{
                        echo htmlspecialchars($n."¥n¥n");
                    }

                }
            }

        }else{
            echo htmlspecialchars("やり直し");
        }
    }
}

 

今回はフォーム表示のindex.phpと実際に処理をするfizzbuzz.phpにわけました。

今回フォームのmethodとactionを覚えました。

<form method="post" action="/hayama_test/fizzbuzz/fizzbuzz.php">

POSTで値を渡すってのがコーディングにはない感じでなかなか難しい・・・

隠しフィールドなんて出てくると、また混乱しちゃうんで、早くphpの型ってのを

覚えていきたいですね。