[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ぇっと、前回の記事の間違いを本日修正しますた(ぉ
というわけで演習問題2は出来なかったんじゃないかなw
まぁ解答編です。
演習問題1
##
print"hello world";
##
演習問題2
##
$a=<STDIN>;
print"$a";
##
演習問題3
##
$a=<STDIN>;
$b=<STDIN>;
print"$a+$b";
##
まぁあくまで解答例ですがいかがでしょうか。
さて、本日はプログラムのキモとも言える条件文とループ文です。
1;条件文
俗に言う『if構文』って奴です。
もし○○ならば××って言う命令になります。
簡単な実例
##
$a=<STDIN>;
if($a==9)
{
print"バカです";
}
elsif($a==3)
{
print"アホになってください";
}
else
{
print"普通です";
}
##
ちょっと長いですが、このif構文の全ての要素が入ってます。
解説します。
if(ほにゃらら)
このカッコ内には『もし○○ならば~』の○○が入ります
問題なら『もし$aが9ならば~』になります。
さらにその先
{から}までの式が『もし○○ならば××である』の××ですね。
問題なら『もし$aが9ならばバカである』となります。
その先
elsif()
これは「もし○○ならば××である。そうでなくて△△ならば□□である」
の△△です。
そしてその後の
{}で括られた式が□□ですね。
最後の
else
は「そうでなければ☆☆」
の『そうでなければ』です。
難しく言うと条件の否定という奴でしょうか。
で、その後の{}が☆☆ですね。
つまり、例題の文を日本語にすると
『もし$aが9ならバカで、それ以外だと$aが3の時アホで、それ以外は普通です。』
となるわけです。
ワカリマシタか?ワカラナイデスカ(ぉ
2;ループ文
ループ文は先程のif文では特別な時に利用した{}を何回も繰り返す構文です。
プログラムの例から
##
while($a==100)
{
print"ごっすん";
$a++;
}
##
##
for($c=7;$c>0;$c--)
{
print"アト$cニチ";
}
##
どうでしょうか。実行してみればワカルかと思いますが
最初の方は沢山ごっすんして、2つ目の方はカウントダウンしていったと思います。
ループ文にはwhile文とfor文という二つがありますが、この二つの違いは何でしょうか。
それは条件の指定方法です。
while()では()の中の条件を満たしている間、{}内をループさせます。
ちなみにwhile(1)等とすると無限ループです。
例文ではwhile($a<=100)となっているので
「$aが100以下である限り」ループする、というわけです。
そして{}内に$a++;の文があります。
このため、ループの度に$aは1ずつ増えて、100回目のループ終了時にwhile文の条件を満たさなくなり、ループを終了するわけです。
次のfor文はちょっとムツカシイです。
例見てみましょ
for($c=7;$c>0;$c--)
となってます
forの()内は特殊で
for(変数の初期値;ループ条件;変数の変更)と入力するカタチになります。
この真ん中だけを書いたのがwhile()文ですね。
for文では一つの$箱を()内で少しだけ操作できるわけです。
以下の二つの例を見てみましょう
##
$a=3;
while($a<=0)
{
print"残り$a機です";
$a--
}
print"ゲームオーバー";
##
##
for($a=3;$a<=0;$a--)
{
print"残り$a機です";
}
print"ゲームオーバー";
##
まぁ、二つとも同じ結果が実行されます。
ここでは
for($a=3;$a<=0;$a--)
が
$a=3;
while($a<=0)
$a--
の3行文の意味を持っているわけです。
纏まってるfor文の方が便利な局面、ばらけているwhile文の方が便利な局面があるので
状況で使い分けるといいかと思います。
さて、今回の演習問題。
このループと条件文の演習に便利なのが、
ちょっと古いですが、『世界のナベアツ』プログラムです。
というわけで
演習問題
変数$aを0から100まで順番に表示し、3の倍数と3のつく数字の時は数字の代わりに「アホ」と表示するプログラムを作成しなさい。
今回も解答は次週です~
05 | 2025/06 | 07 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |