今日の授業は、配列の基礎を学びます。


配列を使って前回の授業で作ったif文のおみくじを改良しちゃいましょう。


では、早速コーディング。


ふむふむ。if文で条件分岐していたおみくじの結果を配列の中に入れている。

こんな方法もあったのか?


こんな感じ


----------------------------

#! c:/perl/bin/perl


@kuji = ('大吉','中吉','小吉','吉','末吉','凶');

@tips = ('絶好調','良いことがある','ちょっと良い','読書で吉','掃除で運気上昇','災厄の日');


#おみくじを引く

$role = int(rand 6);


#CGIヘッダーの出力

print "content-type: text/html\n\n";

#HTMLの出力


print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>perl おみくじ</title></head>\n";
print "<body>\n";

print "<p>今日のあなたの運勢は・・・<big>$kuji[$role]</big>です。</p>\n";
print "<p>$tips[$role]</p></body>\n";

print "</html>\n";

----------------------------


それっ実行!


http://127.0.0.1/tendays/2-4.cgi


今日のあなたの運勢は・・・です。

災厄の日


うううっ、凶だって・・・・


でもソースをみるとかなりコンパクトになった感じ。

配列恐るべし。



今日のポイント


配列は名前の頭に@を付ける。 @hoge = ('あ','い','う','え');


配列の要素には、変数と同じで$を付け、

添え字を使い識別する。 $hoge[0] $hoge[1] $hoge[2]

添え字は、0から始まります。

こんばんは。


今日の授業の目的は、運勢と開運のヒントを画面に表示させます。


昨日の応用で簡単できちゃいます。


さあーコーディング開始。


------------------------------

#! c:/perl/bin/perl

#おみくじを引く

$role = int(rand 6);

if($role == 0) {
$kuji ='大吉';
$tips = '何をしても絶好調な一日。新しいことにチャレンジしてみると良いでしょう。';
}

elsif($role == 1) {
$kuji = '中吉';
$tips = '良いこと起きます。上を向いて歩くとUFOを目撃できるかもしれません。';
}
elsif($role == 2){
$kuji = '小吉';
$tips = 'ちょっとした幸運あり。下を向いて歩くと小銭が拾えるかもしれません。';
}

elsif($role == 3){
$kuji = '吉';
$tips = '心の平安あり。トイレで読書すると吉。';

}

elsif($role == 4){
$kuji = '末吉';
$tips = '運気上昇の兆し。家にこもると吉ですが、家族に掃除機でどつかれるので注意';

}

elsif($role == 5){
$kuji = '凶';
$tips = '災厄の日。入浴すると吉ですが、湯船でねるとそのまま沈むので注意。';
}


#CGIヘッダーの出力

print "content-type: text/html\n\n";

#HTMLの出力


print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>perl おみくじ</title></head>\n";
print "<body>\n";

print "<p>今日のあなたの運勢は・・・<big>$kuji</big>です。</p>\n";
print "<p>$tips</p></body>\n";

print "</html>\n";
----------------------------------


早速実行。 


今日のあなたの運勢は・・・小吉です。

ちょっとした幸運あり。下を向いて歩くと小銭が拾えるかもしれません。


あー明日の運勢は、小吉か・・・・。


くそー。大吉をだすまでひたすら更新だぁ。


ようは、ifとelesを使って、rand関数の乱数の数字によって運勢を決めているわけだ。


簡単簡単!


今日のポイント


○if文の種類


if(条件) { ブロック }


if(条件){ ブロック } else { ブロック }


if(条件){ ブロック } elsif(条件) {ブロック} ・・・・・・


if(条件){ ブロック } elsif {ブロック} ・・・・・・ else{ブロック}


elsif節で終わらせてもよいし、

else節で終わらせてもよいみたいだ。

今日は、if文の応用 else節だ。


もし何々だったら○○するがif文でしたが、もし何々でなかたらXXするがelseです。


では、早速、前回のソースを応用できるので今回の授業用に編集しちゃいます。


いちいちはじめからソースを書くのは面倒になってきたので・・・・。



今回の授業では、さいころの目の数のあとに、半か丁か表示させるのが目的です。


-------------------------------

#! c:/perl/bin/perl

# さいころを振る

$n = int(rand 6) + 1;

#半か丁か

if($n % 2 == 0) {

$msg = "丁です。";

}
else{

$msg = "半です。";

}


#CGIヘッダーの出力

print "content-type: text/html\n\n";

#HTMLの出力

print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>perlさいころ</title></head>\n";
print "<body>\n";
print "<p>さいころの目は<big>$n</big>です。$msg</p></body>\n";

print "</html>\n";

----------------------------------


http://127.0.0.1/tendays/2-2.cgi


実行。



さいころの目は6です。丁です。



おおおっ!


今日のポイント


○if-else文


if(条件) {条件が真のとき実行する文} else {条件が偽のとき実行する文}


○$n % 2


$n割る2の余りを計算します。


○演算子の種類


+演算子 足し算

‐演算子 引き算

*演算子 掛け算

/演算子 割り算

%演算子 余り


○等値演算子


==演算子 イコール

!=演算子 ノットイコール


○単純代入演算子


=演算子 代入


おしまい。