読者です 読者をやめる 読者になる 読者になる

PHP 練習問題1...答え合わせ…(p10)

前回の答えあわせです。

1問目ー 解答例:

<?php                                                                           
    $a = 8;
    $b = 4;
    echo $a + $b."\n";
    echo $a - $b."\n";
    echo $a * $b."\n";
    echo $a / $b."\n";

実行結果:

12
4
32
2

単純な$a変数と$b変数の演算処理です。 これは簡単かと思います。

2問目ー 解答例:

<??php                                                                           
    $testAry = array("リンゴ","ブドウ","ミカン","メロン","バナナ");
    
    foreach($testAry as $val){
        echo $val."\n"; 
        if($val == "ブドウ"){
            echo "おいしい!!"."\n"; 
        }   
    }

実行結果:

リンゴ
ブドウ
おいしい!!
ミカン
メロン
バナナ

ここでは配列とforeachループを使っています。 foreachで要素を受け取るようにして、ifでブドウだったら "おいしい!!"出力ですねw

3問目ー ちょっと、79点以下としていたところが、この判定だと 全部の配列要素でバラバラ通らないので、「点数が50点以外かつ40点以上かつ79点以下」の場合に変えましたwすいませんw 解答例:

<?php
    $testPoints = array(80,90,40,50,20);

    foreach($testPoints as $val){
        if(90 <= $val){
            echo "やったね、高得点!!"."\n"; 
        } else if(80 <= $val){
            echo "おしいもうちょっと!!"."\n"; 
        } else if(50 != $val && 40 <= $val && $val <= 79){                  
            echo "頑張れ!!"."\n"; 
        } else if($val == 50){
            echo "ちょうど半分やぞ!!"."\n"; 
        } else {
            echo "がんばれがんばれできるできる!今日からお前は富士山だ!!"."\n"
        }   
    }  

実行結果:

おしいもうちょっと!!
やったね、高得点!!
頑張れ!!
ちょうど半分やぞ!!
がんばれがんばれできるできる!今日からお前は富士山だ!!

配列をforeachでループさせた中で、if elseをがっつり使っています。 一番上から評価されて、trueになったら、中の処理をして次に行ってしまうので 40点の時の判定が変な感じになってます。というか50じゃなくて40点以上79点以下ですね。

4問目、FizzBuzz出力ですが下記のようになります。

<?php                                                                       
    for($i = 1;$i <= 100;$i++){
        if($i % 3 == 0 && $i % 5 == 0){ 
            echo "FizzBuzz"."\n";
        } else if($i % 3 == 0){ 
            echo "Fizz"."\n"; 
        } else if($i % 5 == 0){ 
            echo "Buzz"."\n"; 
        } else {
            echo $i."\n"; 
        }   
    }   

実行結果:


1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
.
.
略

forで初期値1から100までの間ループして if文であまりが0の場合、でそれぞれやって判定してますね。

どうだったでしょうか?簡単でしたか?? 上達への道は、コピぺしていくんじゃなくて、自分で考えて作るところに あるかと思ってます。

それではまた。