お問い合わせフォームの作り方③「教えてマリオ」

マリオデザイン

マリオデザインスタッフブログ「教えてマリオ」

ホーム>>教えてマリオトップ>>お問い合わせフォームの作り方③

このブログはマリオデザインアルバイトスタッフがこれからWEbを勉強してみたいと思われている方や会社でホームページの更新業務を担当されているがよく意味が分からないという方のために、ホームページ作成の基礎を綴っていくものです。 難しい言葉を使わず(使えない)噛み砕いた言葉で書いていくので、参考になればと思います。
*勉強中の為、間違った解釈を説明すると思いますので、ご指摘コメントもお待ちしておいります。

お問い合わせフォームの作り方③

  • 2012年4月14日
  • php

今回は様々な式(構文)を紹介します。○○に達するまで○○を繰り返す、もし○○だったら○○をする、などの「繰り返し」「条件分岐」です。

目次
  1. 繰り返し
  2. 条件分岐
  3. 代入演算子
1.繰り返し

繰り返しの式を紹介します。繰り返しとはある一定の条件を満たすまで処理を繰り返す処理をします。

while文for文(ホワイル文フォー文)を使うことで処理を繰り返します。
まずはwhile文の式を見てみたいと思います。

<?PHP
while(カッコ内の条件が満たされている間は){
	
	ここのステートメント(動作)を実行する
}
?>
例をあげてみます。while文を使って文字列を5回繰り返し表示する式を作ります。
<?PHP
$i=1;
while($i<=5){   
									
	echo $i."回目の表示<br/>";
	$i++;
}
?>
これをブラウザで見ると

1回目の表示
2回目の表示
3回目の表示
4回目の表示
5回目の表示

となります。
上記式を言葉で説明すると

$iは1です。
whileは()内の条件が満たされている間は{}の間の動作を実行します。今回の条件は$iが5以下の場合です。動作の内容は$i回目の表示をechoで出力し$iに1を足すです。


ですので一番初めは$iは1で条件に数字で入れてみると1<=5で条件を満たしているので{}の動作が実行されます。次に動作の中に$i++がありますので$iすなわち1に1が足されるので$iは2になります。条件に数字で入れてみると2<=5で条件を満たしています。これを繰り返していって2に1を足して3、3に1を足して4、4に1を足して5、5に1を足して6のように足されていき、条件が6<=5になった時に条件を満たさなくなるので、while文の繰り返しが終了します。

少し難しくなりましたがプログラミングっぽくなってきたので面白くなってきましたね。

つぎはもう一つの繰り返しfor文を紹介します。

for文の式を見てみたいと思います。
for(カウントの初期値;いくつまで繰り返すか;カウントの仕方){
	
	()内の条件が満たされている間はここのステートメントを実行する
}
例をあげてみます。for文を使って文字列を5回繰り返し表示する式を作ります。
<?PHP
for($i=1;$i<=5;$i++){
	
	echo $i."回目の表示<br/>";
	
}
?>
これをブラウザで見ると

1回目の表示
2回目の表示
3回目の表示
4回目の表示
5回目の表示
となります。

while文と同じですね。

では言葉で説明してみたいと思います。for文はwhile文と違って()にすべて記述するイメージですね。

for文もwhile文と同じように()の条件が満たされている間は{}内の動作を繰り返します。条件の初期値(始まりの数字)は$iは1です。繰り返す範囲は$iが5以下の時です。カウント方法は1づつ足していきます。です。この条件を満たしている間は{}の動作$i回目の表示をechoで出力します。となります。条件に数字で入れてみると1からスタートするので1<=5で条件を満たしているので{}の動作を実行します。{}内が実行された後カウント方法の$i++つまり1に1を足すにを行い、繰り返す範囲に戻ります。戻って2<=5になりますがこれも条件を満たしているので{}が実行されます。でまたカウント方法に戻ります。この動作を繰り返し6<=5になって条件を満たさなくなったら繰り返しは終わります。

ここでfor文を使ってどんなことができるか例をあげます。

for文を使って九九を作成
<?PHP
for($i=1;$i<=9;$i++){
	for($j=1;$j<=9;$j++){
		echo $i."×".$j."=".$i*$j."<br/>";
	}
	}
	
?>
今回ブラウザの表示を書いてしますと長くなるので書きませんが、1の段から9の段までこの少しの文章を書くだけで実行してくれます。
少し感動するので皆さんもぜひやってみてください。

繰り返しの最後にwhile文とfor文の重要な注意点を書きます。

while文とfor文両方とも必ず無限ループにならないように終了条件を正しく設定しましょう。終了条件が正しくない場合永遠に繰り返されサーバーに負担がかかってしまいます。これは気負つけましょう。

ダメな例を1つあげます。実行しないでくださいね。
<?PHP
$i=6;
while($i>=5){   
									
	echo $i."回目の表示<br/>";
	$i++;
}
?>
上記の条件は$iが5以上の時は{}を繰り返すという式です。$iは6で6に1づつ足していくので永遠に5以下になることはないので、永遠に{}が繰り返されることになります。 これが無限ループです。このようにならないように終了条件は正しく書きましょう。


2.条件分岐

条件分岐の式を紹介します。条件分岐とはこの場合はこう、あの場合はこう、のよう条件によって処理を切り替えます。
条件分岐にはif分switch分があります。(イフ文とスイッチ文)
まずはif文の式を見てみましょう。if文は簡単に説明するともしも分です。

<?PHP
if(もしこの条件が満たされていたら){
   このステートメントを実行する
   }
?>
です。
そうでなければの条件を追加する場合はelseを追加します。
<?PHP
if(もしこの条件が満たされていたら){
   このステートメントを実行する
   }
else{
	そうでなければこのステートメントを実行する
}
?>
こんな感じです。
さらに、いくつかの条件に付いて満たしているかどうかの場合はelseif()を追加します。
<?PHP

if(この条件が満たされていたら){
   このステートメントを実行する
   }
elseif(そうでなくて、次のこの条件が満たされていたら){
	 このステートメントを実行する
}
else{
	そうでなければこのステートメントを実行する
}
?>
です。条件を増やしたいときはelseifを増やしてください。

では例をあげてみます。2つの数値を比較して条件分岐で文字列を表示してみます。
<?PHP
$number1=10;
$number2=100;

if($number1==$number2){
	echo "number1とnumber2は等しいよ<br/>";
}
elseif($number1>$number2){
	echo "number1はnumber2より大きいよ<br/>";
}
else{
	echo "number1はnumber2より小さいよ<br/>";
}
?>
上記の文章をブラウザで見ると

number1はnumber2より小さいよ

と表示されます。

上記式を言葉で書いてみたいと思います。比較演算子も出ているので復習していきます。

$number1は10です。$number2は100です。

もし$number1と$number2が等しければ(==は等しいですね)number1とnumber2は等しいよとechoでしゅつりょくしてください。

等しい場合でなくて$number1が$number2より大きい場合(>は左が右より大きいですね)はnumber1はnumber2より大きいよとechoで出力してください。

すべてに当てはまらない場合はnumber1はnumber2より小さいよとechoで出力してください。

ですね。なので$number1は10で$number2は100なので$number1は$number2と等しくないし$number1は$number2より大きくもないのでelseの処理、number1はnumber2より小さいよが実行されます。

$number1と$numberの数字を同じにしたりして、いろいろ試してみてください。



ではここでif分を使っておみくじを作成したいと思います。作成に入る前に関数を一つご紹介します。

rand()関数です。

rand関数はランダムに数字を作ってくれます。使い方は

rand(最小値,最大値)です。最小値と最大値を,(カンマ)で区切ればOKです。
では作ってみます。
<?PHP
$omikuji=rand(0,5);

if($omikuji==0){
	echo "吉<br><br>";
}
elseif($omikuji==1){
	echo "小吉<br><br>";
}
elseif($omikuji==2){
	echo "凶<br><br>";
}
elseif($omikuji==3){
	echo "大凶<br><br>";
}
else{
	echo "大吉<br><br>";
}
?>
こんな感じです。
言葉で説明してみたいと思います。

$omikujiにrand関数で作られる0~5のどれかの数字が代入されます。(ランダムなのでどの数字が入るかわかりません)

もし$omikujiが0と等しい場合(rand関数で0がでていた場合)吉と出力してください。

そうでなくて$omikujiが1の場合小吉を出力してください。

またそうでなくて$omikujiが2の場合凶を出力してください。

またまたそうでなくて$omikujiが3の場合大凶を出力してください。

すべてに当てはまらない場合は(4か5の場合ですね)大吉を出力してください。

という感じになります。毎回$omikujiに入る数字が違うので毎回何が出るかわからないおみくじの完成です。

では最後にもう一つの条件分岐switch文を紹介します。

switch文の式は
<?PHP
switch(ここに入っている変数が){
	   case この値なら:
	         このステートメントを実行する;
			 break;
	   case この値なら:
	         このステートメントを実行する;
			 break;
	   default :
	         このステートメントを実行する;
			 break;
			 }
?>
です。
if文と比較するとifがswitchでelseifがcaseでelseがdefalt的な意味合いです。

if文はもしも文と書きましたがswitch文はスイッチを切り替えて条件分岐する感じです。

switch文でif文で作ったおみくじと同じものを作ってみます。
<?PHP
$omikuji=rand(0,5);

switch($omikuji){
	case 0:
		echo "吉";
		break;
	case 1:
		echo "小吉";
		break;
	case 2:
		echo "凶";
		break;
	case 3:
		echo "大凶";
		break;
	default:
		echo "大吉";
}

?>
です。

初めは難しいかもしれませんが覚えてくると楽しくなってくると思いますのでがんばって覚えていきましょう。

if文は()の条件を満たしているときtrue(真(正しい))を返し、満たしていない場合はfale(偽(正しくない))を返します。頭に少しだけ入れておいてください。


このエントリーをはてなブックマークに追加

コメント欄

    きくち

    お問い合わせフォームがどういう仕組みになっているかよくわかりました。ありがとうございました。今年で65歳になりますがwebの勉強中です。(イラストレーター)

    2014年4月23日4:52 PM

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

TRACKBACK_URL