なぜプログラムには繰り返し処理が必要か?
PHP超初心者のための繰り返し処理の書き方
2013/08/25WordBench千葉/岡本直美
13年8月25日日曜日
自己紹介
• 岡本 直美(ねこみみ隊長)• 自由業 でなく、会社員• PHPは実はそんなに経験少ないの。• せんせー歴は長いけど。
13年8月25日日曜日
本日のアジェンダ• プログラマー三大美徳• なぜプログラムが必要なの?• アルゴリズムって• 繰り返し3種• PHPの繰り返し3種• WordPressで使うのは、一体どれ?
13年8月25日日曜日
1.プログラマー三大美徳
13年8月25日日曜日
プログラマ三大美徳
怠惰 傲慢 短気なまけもの プライド高め 待てない
13年8月25日日曜日
ちなみに、
13年8月25日日曜日
隊長は、ものすごーくなまけものです。
13年8月25日日曜日
プログラマ三大美徳
怠惰 傲慢 短気なまけもの プライド高め 待てない
13年8月25日日曜日
なぜか?
13年8月25日日曜日
効率よく作業を終わらせて遊びたいから。
13年8月25日日曜日
そのためには
13年8月25日日曜日
さっさとコーディングしてしまいたい。
13年8月25日日曜日
楽したい。
13年8月25日日曜日
2.なぜプログラムが必要なの?
13年8月25日日曜日
楽したいから。
13年8月25日日曜日
例えばこんな例。
• 生年月日を入力するフォームを作る• 年は和暦で入力する• 月と日をそれぞれセレクトボックスで
13年8月25日日曜日
http://nekomimi-taicho.com/20130825/form.html
例えばこんな例
13年8月25日日曜日
•optionタグがたくさんめんどくさい!
•こんなの勝手に12個とか31個出して!
•修正が来たら直すのもめんどくさい!
13年8月25日日曜日
つまり、楽するためには
13年8月25日日曜日
•勝手に必要な数を出したり
•修正が来たら直すの簡単で
•コピペすれば他のページでも使い回せる
13年8月25日日曜日
これが、プログラムの役目。怠惰プログラマーが目指す
13年8月25日日曜日
3.アルゴリズム
13年8月25日日曜日
アルゴリズムとは• 手順とか段取り。
• プログラムはお決まりの手順があります。• 間違えるととってもおかしくなります。• プログラムって構文の書き方じゃなくて、実はここがイチバンの肝なんです。
13年8月25日日曜日
Word主婦的解説。
13年8月25日日曜日
• お茶碗に沸騰したお湯を入れる。• 急須にお茶っ葉を入れる。• 急須にお茶碗のお湯を入れる(これで80℃)• 煎茶なら1分蒸らす。• 急須のお茶を味や濃さが均等になるようにまわしつぎする。
• 最後の一滴まで出しきる。
お茶淹れのアルゴリズム
13年8月25日日曜日
お茶淹れのアルゴリズム• お茶碗に沸騰したお湯を入れる。• 急須にお茶っ葉を入れる。• 急須にお茶碗のお湯を入れる(これで80℃)• 煎茶なら1分蒸らす。•急須のお茶を味や濃さが均等になるようにまわしつぎする。
• 最後の一滴まで出しきる。急須のお湯がなくなるまでお茶碗の数繰り返す。
13年8月25日日曜日
4.繰り返し3種
13年8月25日日曜日
繰り返し処理を3種
• 条件を満たしてるうちは繰り返す。• データの数だけ繰り返す。• 決まった数だけ繰り返す。
もちろん、細かく言えばもっと種類はあると思いますが・・・
13年8月25日日曜日
さっきのフォームだと
13年8月25日日曜日
条件を満たしてる
• 日数を表示する場合に、31回繰り返す• もしかして28日か29日か30日かも?• その時にあらかじめ何日までか決めておく(終了するための条件)
13年8月25日日曜日
データの数だけ
• 例えば、元号を表示するときにどこからどこまで表示するか?
• 表データで漢字とかも入ったデータを読み込んで終わるまで・・・・
13年8月25日日曜日
決まった数だけ
• 月の表示をするときに1~12って12回繰り返すとわかってる時
• 数を数えるだけでいいので、細かい条件はなし
13年8月25日日曜日
5.PHP構文で繰り返し3種
13年8月25日日曜日
繰り返し処理を3種• 条件を満たしてるうちは繰り返す。• while文• データの数だけ繰り返す。• foreach文• 決まった数だけ繰り返す。• for文
13年8月25日日曜日
http://nekomimi-taicho.com/20130825/form.php
さっきの例だと
13年8月25日日曜日
while文(条件で繰返す)
• 先に条件となるものを揃えておく• 条件を満たしている間繰返す• 条件が変わるように繰り返しの中で変更する
13年8月25日日曜日
foreach文(データ数)
• 配列やオブジェクトの繰返し専門• 表データをとかがお得意• 何回か数えなくても、データがなくなったら終わり
13年8月25日日曜日
for文(回数とか)
• $iというカウンターを使って繰返す• でも本当はもっともっと複雑なことが出来る• PHPの繰り返しではイチバン難しい
13年8月25日日曜日
楽した上に...
13年8月25日日曜日
ファイルサイズ
※小さくなってるのよ
13年8月25日日曜日
6.WordPressテーマで使われる繰り返し?
13年8月25日日曜日
どんな繰り返し?<?php while ( have_posts() ){ the_post(); get_template_part('content'); }?>
普通の書き方だとこんな感じ・・・
13年8月25日日曜日
どんな繰り返し?
<?php while ( have_posts() ) : the_post(); ?> <?php get_template_part('content'); ?><?php endwhile; ?>
WordPressテンプレートではこの書き方だとこんな感じが一般的・・・こっちの書き方は、PHPをHTMLの中に組込みやすいし、コピペでエラー出にくいの。
13年8月25日日曜日
難しい言い方をすると制御構文の違い...
っていうけど、こんなのプログラマになろうと言う人以外覚えんでもええよ。
13年8月25日日曜日
while文(条件で繰返す)• have_posts()という条件http://codex.wordpress.org/Function_Reference/have_posts
• ture(データがある)が返ってくる間繰返す• the_post()でデータを一件取得http://codex.wordpress.org/Function_Reference/the_post
13年8月25日日曜日
あれ?データがあるってforeachじゃないの?
13年8月25日日曜日
クラスという便利BOX• PHPでデータベースを読み込む処理をする時は、実は結構めんどくさい。
• けど、WordPressは、その辺の処理をテーマ内でわかりやすくする記述出来るのでクラスってのを使ってる。
• そのクラスを使ったデータの繰り返しはwhile文の方が簡単。
13年8月25日日曜日
7.まとめ
13年8月25日日曜日
まとめ
• プログラムは、手際よく書いて楽出来る• 繰り返しをするとコードが短い• 種類は大きく3つ• WordPressではデータベースを読むのにクラスを使ってるからwhile文
13年8月25日日曜日
わかりやすい表現のため
• PHPとかプログラミングとか詳しい人から突っ込まれると思う。
• けどこのスライドは、ノンプログラマでもなんとなく概念がわかればいいなというもの
• だからねこみみ流解説ならあってるの。
13年8月25日日曜日
8.おまけ
13年8月25日日曜日
サンプルに使ってるPHPの関数の紹介
13年8月25日日曜日
元号の表示
• array関数(配列を作る。今回は連想配列)http://php.net/manual/ja/function.array.php
• foreach関数(配列などの繰り返し)http://php.net/manual/ja/control-structures.foreach.php
• printf関数(決まったフォーマットで表示)http://php.net/manual/ja/function.sprintf.php
13年8月25日日曜日
月の表示
• for関数(3つの式を使って繰返す)http://php.net/manual/ja/control-structures.for.php
• printf関数(決まったフォーマットで表示)http://php.net/manual/ja/function.sprintf.php
13年8月25日日曜日
日の表示
• while関数(条件があう間繰返す)http://php.net/manual/ja/control-structures.while.php
• printf関数(決まったフォーマットで表示)http://php.net/manual/ja/function.sprintf.php
13年8月25日日曜日
参考にしたサイトなど
13年8月25日日曜日
•プログラマ三大美徳(ITproより)http://itpro.nikkeibp.co.jp/article/Watcher/20061005/250057/
•日本茶の淹れ方、わかりますか?http://ameblo.jp/kuoukai/entry-10714442974.html
13年8月25日日曜日
ご清聴ありがとうございました。
13年8月25日日曜日
Top Related