忍者ブログ
×

[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のつく数字の時は数字の代わりに「アホ」と表示するプログラムを作成しなさい。

 

今回も解答は次週です~

拍手

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無題
そ、そんな宿題出されたって全然わからないんだからねっ!ほんとなんだから!

と、まあ、言ってみるけど、楽しいから良しとします。私事がゴタゴタしていて、中々腰を据えて考えられないから、電車の中でちょろっと考える事にします。
YOU 2009/09/02(Wed)01:44:15 編集
Re:無題
視聴者参加型って奴なのです。
まぁまだまだ簡単なモノですし、こんなカンジかしら?って考えて
次週の解答をオマチクダサイw
【2009/09/05 00:28】
この記事へのトラックバック
この記事にトラックバックする:
[175]  [174]  [173]  [172]  [171]  [170]  [169]  [168]  [167]  [166]  [165

<< 色々クリアしています。 HOME 最近のハマリ >>
携帯mixi民誘導のおまじない
携帯mixiで見てないでブログのカウンタ回すといいよ→ http://chennering.blog.shinobi.jp/
カレンダー
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
カウンタとパーツ
ついったー
ブロペとバナー
バナー広告は特にないよ!
最新コメント
[02/06 NONAME]
[01/15 風魔小太郎]
[03/14 さやか]
[03/14 さやか]
[10/26 Nada]
最新トラックバック
プロフィール
HN:
過激派唐辛子
性別:
非公開
バーコード
ブログ内検索
広告
過激派唐辛子のぐ~たら手記 JEIKJEILとperlのおべんきょコーナー 第4回『条件式、ループ』 Produced by 過激派唐辛子(Jaco、JJ)過激派唐辛子 
忍者ブログ [PR]
Designed by がりんぺいろ