こんにちは。hirafujiです。8回目の投稿です。
昨夜は、新卒一同、社外の方々との交流会に参加してきました。
技術的な点ではわからないことも多かったですが、それでもやはり社外の方との交流から得るものは多かったです。
また機会があれば、積極的に参加していきたいと思います。
さて、今日のPHPでは、前回に引き続きfor文について勉強しました。
詳しい内容は以下の通りです。
【continue】
残りの処理をスキップし、次のループの最初の処理から実行するための命令。
【break】
強制的にループから抜け出すための命令。
【while文】
for文と同じ様にループ処理を行うが、条件判定だけが行われる文。
while文は、以下の様に記述します。
while ( 条件式 ) {
ループ中の処理
}
「条件式」が真の間は、「ループ中の処理」が繰り返されます。
【forのネスト】
for文を入れ子状にすることにより、より複雑な処理をすることができるようになります。
例えば、以下のfor文からはどのような結果が出力されるでしょうか。
echo ” 楽しい九九 \n \n ” ;
for ( $i = 1 ; $i < 3 ; $i++ ) {
echo $i . ” の段 \n ” ;
for ( $j = 1 ; $j < 10 ; $j++ ) {
echo $i . ” × ” . $j . ” = ” . $i * $j . ” \n ” ;
}
echo ” \n ” ;
}
このfor文からは、以下のような結果が出力されます。
楽しい九九
1 の段
1 × 1 = 1
1 × 2 = 2
1 × 3 = 3
1 × 4 = 4
1 × 5 = 5
1 × 6 = 6
1 × 7 = 7
1 × 8 = 8
1 × 9 = 9
2 の段
2 × 1 = 2
2 × 2 = 4
2 × 3 = 6
2 × 4 = 8
2 × 5 = 10
2 × 6 = 12
2 × 7 = 14
2 × 8 = 16
2 × 9 = 18
これは、新卒のuchiumiが書いたコードです。
どうですか?結果もコードも美しいと思いませんか?
私がこれと同じ結果を出力させようと思うと、こうなります。
$num1 = 1 ;
$num2 = 1 ;
for ( $i = 1 ; $i <= 2 ; $i++ ) {
for ( $ii = 1 ; $ii <= 9 ; $ii++ ) {
echo $num1 . “×” . $num2 . “=” . $num1 * $num2 . “\n” ;
$num2++ ;
}
$num1++ ;
$num2 = 1 ;
}
で、結果はこうなります。
1×1=1
1×2=2
1×3=3
1×4=4
1×5=5
1×6=6
1×7=7
1×8=8
1×9=9
2×1=2
2×2=4
2×3=6
2×4=8
2×5=10
2×6=12
2×7=14
2×8=16
2×9=18
美しくない><
とゆーかズレてる><
私も、美しいコードから美しい結果を出力できる人になりたいです!がんばります!
—-
(2008/04/22 18:31 muroi追記)
お待たせしました! 動画アップしました!
(part1)
(part2)

by hasumi, on 04.19.08 @ 12:10 PM
おお、もうfor文を使いこなせるんですね!!九九が出力されるのおもろいですね。
continueとかbreakに関しては、コードを書いていて必要になる機会も多いので、
今のうちにサンプルコードの中で使っておいて、慣れておくと良いと思いますよ。
by hirafuji, on 04.20.08 @ 10:27 PM
>hasumiさん
アドバイスありがとうございます!
早速、continueとbreakも試してみようと思います。どんなコードにしようかな~…。
こなせている…かどうかはわかりませんが、おかげさまで使えるようになってきました。やっぱりわかり始めると楽しいですね。
by NT-3, on 04.21.08 @ 6:53 PM
whileの引数に”1″を渡すと無限ループするのは教えてあるのかな?
by hirafuji, on 04.22.08 @ 1:33 PM
>nt-3さん
コメントありがとうございます!
それはまだ教わっていません。が、ちょっと試してみます!
もし他にもあったら、ぜひ教えて下さい。よろしくお願いします!
by NT-3, on 04.22.08 @ 7:49 PM
いや、試すのはよろしくないです。
無限ループっていうのはその名前の示す通りに”無限”にループする処理です。
むしろ、PHPではやってはいけない処理です。
詳しいことはどこかで補足しますよ……多分。
by らいあ, on 04.22.08 @ 7:54 PM
> hirafujiさん
どうなるか実験するといいよ
while (1) {
echo “hello world \a \n”;
}
by hirafuji, on 04.23.08 @ 11:25 AM
>らいあさん
実験してみました。もう二度としません。(笑)
アドバイスありがとうございます!今後ともよろしくお願いします!
>NT-3さん
すみません、せっかくアドバイスいただいたのに、好奇心に負けて試してしまいました・・・。
試した結果、やるもんでないことだとわかりました。もう2度としません。(苦笑)
アドバイスありがとうございました!今後とも色々教えて下さい。よろしくお願いします!