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の型ってのを
覚えていきたいですね。