忍者ブログ

からすまる日誌

2020010802 if,switch

×

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

2020010802 if,switch

ではこういう想定外をどう回避したらいいか
たとえばこう
 
 <?php
 $score=1000;
 if($score<0 || $score>100){
  echo "無効な数値です";
 }elseif($score<=30){
  echo "a";
 }elseif($score<=60){
  echo "b";
 }elseif($score<=90){
  echo "c";
 }elseif($score<=100){
  echo "d";
 }
 ?>
 
最初に条件外を外す 
とかとか。
もちろん丁寧に条件を詳しく書いてもいい
 
なお$scoreを一か所&scoreとスペルミスしてエラーが出た
でたエラーは以下の通り:
Parse error: syntax error, unexpected '&' in
C:\xampp\htdocs\php\20200108\elseif2.php on line 24
 
--->elseif2.php
 
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="utf-8">
 <title>elseif</title>
 <link rel="stylesheet" href="test1.css">
</head>
<body>
 <?php
  $num=250;
  if($num<=100){
   echo "100以下";
  }elseif($num<=200){//100以下はすでに省かれているのでこの記述でよい
  echo "100より上200以下";
 }else{
  echo "200以上";
 }
 ?>
 <?php
 $score=1000;
 if($score<0||$score>100){
  echo "無効な数値です";
 }elseif($score<=30){
  echo "a";
 }elseif($score<=60){
  echo "b";
 }elseif($score<=90){
  echo "c";
 }elseif($score<=100){
  echo "d";
 }
 ?>
</body>
</html>
 


switch文もphpにある
 
switch(変数){
 case 条件1:
  条件1がtrueの時の処理
  break;
 case 条件2:
  条件2がtrueの時の処理
  break;
 default:
  どの条件にも合わなかったときの処理
  break;
}
 
という今までと同じ記述 
break;を記述しないと以下の部分を全部実行しようとするので注意
 

最初にこういう形で記述しておく
  <?php
  $value="A";
  switch(){
  
  }
  ?>
 
かっこの閉じは最初に記述。
 
--->switch.php
 
<!DOCTYPE html>
<html lang="ja">
 <head>
  <meta charset="UTF-8">
  <title>switch</title>
  <link rel="stylesheet" href="test1.css">
 </head>
 <body>
  <?php
  $value="A";
  switch($value){
   case "A":
    echo "Aが入力された";
    break;
   case "B":
    echo "Bが入力された";
    break;
   case "":
    echo "何も入力されていない";
    break;
   default:
    echo "A,B以外が入力された";
    break;
  }
  ?>
 </body>
</html>
 

ではこれと同じ挙動をするものをif文で作りましょう
 
  <?php
  $value="A";
  if($value=="A"){
   echo "Aが入力された";
  }elseif($value=="B"){
   echo "Bが入力された";
  }elseif($value==""){
   echo "何も入力されていない";
  }else{
   echo "A,B以外が入力された";
  }
  ?>
 
最初に=を1つだけというミスをしたので全部Aになるというエラーになった。
条件一致は==で。
 

これでもいい
 
<?php
  //$value="A";
  if($value=="A"||$value=="B"){
   echo $value."が入力された";
  }elseif($value==""){
   echo "何も入力されていない";
  }else{
   echo "A,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