PHPの問題で複利計算の出題があったがわからなかったので
はじめに
PHPを勉強中、複利の計算をfor文ですると書かれていたが、やり方がわからなかったので、何がわからなかったのか自分なりのまとめ
複利の計算方法
1000円を5年間、5%の複利計算
$i = 1000; for($a=0;$a<5;$a++){ $i = $i * 1.05; } echo $i.'円';
「$i = $i * 1.05」の所は「$i *= 1.05」の方がスマートかな。
わからなかった点
計算方法は
- 1000×1.05=1050
- 1050×1.05=1102.5
- 1102.5×1.05=1157.625
と計算していくので「$i * 1.05」までは理解出来ていた。
ただ、これを計算式としてまとめる事が出来なかったのが分からなかった原因。
そしてfor文やPHPをしっかりと理解していない事も原因だった。
今回した失敗例
$i = 1000; for($a=0;$a<5;$a++){ $i * 1.05; } echo $i.'円';
これだと、for文のところで計算したものの、結局のところ「$i」=1000のままなので意味がない
$i = 1000; for($a=0;$a<5;$a++){ $i * 1.05; echo $i.'<br/>'; } echo $i.'円';
先ほどの文に、このようにechoを入れて表示させてみると「1000」と言う文字列が縦に5回出ただけ
$i = 1000; for($a=0;$a<5;$a++){ $b = $i * 1.05; } echo $b.'円';
次にこれだも結局のところ「$b = $i * 1.05;」と言うだけで同じくechoを入れて表示させると
$i = 1000; for($a=0;$a<5;$a++){ $b = $i * 1.05; echo $b.'<br/>'; } echo $b.'円';
1050と言う文字列が5回縦に表示されただけです。
for文の仕組みを考えると「$b = $i * 1.05」の計算式だと「$bは$i掛ける1.05」です。ただ、$iは最初に「$i=1000」と1000に固定されている状態なので計算式は「$bは1000掛ける1.05」と5回同じ処理をしただけにすぎないって事です。
分かりやすくする方法
言葉として自分にしっくりときたのが
「元金(1000円)は結果的に元金(1000円)×利率(1.05%)になる」
です。
この言葉通りに入れていくと「$i = $i * 1.05」が自然に出てきますよね。
さいごに
頭が冴えない
昔の方がもっと冴えてたはずなのに、全然ダメだわ。
PHPを勉強しているが、出来るだけたくさんの問題集を解くことが良いかもしれませんね
練習は問題を見て自分なりに考えてから、わからないと即ググるという感じです。