忍者ブログ

からすまる日誌

2020010801 elseif

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2020010801 elseif

elseif文
 
教科書p98
 
100以下
100よりうえ200以下
200より上
で分岐を記述せよ
 
--->elseif.php まちがえた
 
 <?php
  $num=250;
  if($num<=100){
   echo "100以下";
  }elseif($num>100 && $num<=200){//ここがちがう
  echo "100より上200以下";
 }else{
  echo "200以上";
 }
 ?>
 
--->正解
 
 <?php
  $num=250;
  if($num<=100){
   echo "100以下";
  }elseif($num<=200){//100以下はすでに省かれているのでこの記述でよい
  echo "100より上200以下";
 }else{
  echo "200以上";
 }
 ?>
 

if分は上から実行され、ifに当てはまらなければ次のelseifに入り、それに当てはまらなければまた次の・・・という構造なので、
二段目のelseifは一段目のifの条件で省かれている分までは記述する必要がない
 
ただし、想定外の数字が入ることも考慮する必要があったりする
 
--->elseif.php
 
 <?php
  $score=1000;
  if($score>=0 && $score<=30){
   echo "a";
  }elseif($score<=60){
  echo "b";
  }elseif($score<=90){
  echo "c";
 }elseif($score<=100){
  echo "d";
 }
 ?>
 
想定外の「1000点」が代入されるとif文を素通りするし、
 
--->elseif.php
 
 <?php
  $score=-10;
  if($score>=0 && $score<=30){
   echo "a";
  }elseif($score<=60){
  echo "b";
  }elseif($score<=90){
  echo "c";
 }elseif($score<=100){
  echo "d";
 }
 ?>
 
マイナス値があると「b」で引っかかる条件文になってしまう。
 
こういうのに注意が要るらしい
 
PR

コメント

ブログ内検索

カレンダー

04 2025/05 06
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 31