分支结构switch语句的使用
还记得我们最开始讲了这么一个故事:
王同学家里头特别有钱,所以他的行程方式和正常人的又有些不一样。
他的出行方式呢有6种,如下:
1,司机开车
2,民航
3,自己家的专机
4,火车动车
5,骑马
6,游轮
他的方式有6种,而骰子也真好有6面。所以,我们用if...elseif...的判断方式可以实现,但是效率太低了。
还有其他更好的方式吗?我们可以使用到一种方式就是:switch...case语法。
switch...case的语法结构如下:
<?php
switch(变量){ //字符串,整型
case 具体值:
执行代码;
break;
case 具体值2:
执行代码2;
break;
case 具体值3:
执行代码3;
break;
default:
}
?>switch后放需要判断的变量,而case后是放结果。switch后变值为多少,case的值写的与switch变量执相同段的代码。
上面的break是可选的
上面的default也是可选的
不要在case 后面写成分号,后面是冒号:
不要在case后面写判断区间,如($foo > 20 或者 $foo == 30)
switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
我们用流程图来表示的话结果就如下图所示:

上节课中我们用到了rand函数,那我们现在来用rand实现王思总同学的问题选择:
<?php
//定义出行工具
$tool=rand(1,6);
switch($tool){
case 1:
echo '司机开车';
break;
case 2:
echo '民航';
break;
case 3:
echo '自己家的专机';
break;
case 4:
echo '火车动车';
break;
case 5:
echo '骑马';
break;
case 6:
echo '游轮';
break;
}
?>上面的代码我们只需要简单修改,就可以实现我们在微信上面玩的一个小游戏简单的家务骰子和剪刀石头布。你想想?
你再做做实验:
我们可以把 case 1 代码段中的break去掉,你再试试,什么效果?
我们再来写一个简单的星期判断,写法也可以变的怪一些哟:
<?php
//得到今天是星期几的英文简称
$day = date('D');
switch($day){
//拿学校举例,我们让星期一、二、三是校长日
case 'Mon':
case 'Tue':
case 'Wed':
echo '校长日';
break;
echo '星期三';
break;
case 'Thu':
echo '星期四';
break;
case 'Fri':
echo '星期五';
break;
default:
echo '周末,周末过的比周一到周五还要累<br />';
};
?>自己做实验试试:
上面的例子发现,不匹配的时候就执行了defaultk吧?
当然你也可以这样,不过这种写太太累了,没有if...else更加简单。我们不用swith...case来做true和false判断
<?php
//用swith...case来完成bool判断
$bool=true;
switch($bool){
case true:
case false:
}
/*********分隔线*******************/
if($bool){
}else{
}
?>世界上最痴心的等待就是我是case你是switch, 我一只默默的等待,可是你却不选我!
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
":""}
吢死丶情灭6年前
$a=rand(1,6); if($a>=1){ echo 'siji开车'; }else if($a=2){ echo '民航'; }else if($a>=3){ echo '专机'; }else if($a=4){ echo '火车'; }else if($a>=5){ echo '游轮'; }这个怎么规定随机出来的值是整数,用什么函
浮世绘梦6年前
上面的break是可选的 上面的default也是可选的 不要在case 后面写成分号,后面是冒号: 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30) switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
0
秋城6年前
switch...case的语法结构如下:
switch后放需要判断的变量,而case后是放结果。switch后变值为多少,case的值写的与switch变量执相同段的代码。 上面的break是可选的 上面的default也是可选的 不要在case 后面写成分号,后面是冒号: 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30) switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
rang(0,100)在0-100之间随机出现一个数
多种选择,swith……case 布尔判断(是否)if……else
在switch……case语句中,case这一句后面要用冒号:,并用break来结束该选择; 最后所有不匹配的执行default
0
ʘᴗʘ7年前
switch...case语法。 break, default也是可选的 不要在case 后面写成分号,后面是冒号: 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30) switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...els
0
switch后放需要判断的变量,而case后是放结果。switch后变值为多少,case的值写的与switch变量执相同段的代码。 上面的break是可选的 上面的default也是可选的 不要在case 后面写成分号,后面是冒号: 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30) switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
0
3期-Shawn8年前
王同学家里头特别有钱,所以他的行程方式和正常人的又有些不一样。 他的出行方式呢有6种,如下: 1,司机开车 2,民航 3,自己家的专机 4,火车动车 5,骑马 6,游轮 他的方式有6种,而骰子也真好有6面。所以,我们用if...elseif...的判断方式可以实现,但是效率太低了。 还有其他更好的方式吗?我们可以使用到一种方式就是:switch...case语法。 switch...case的语法结构如下: <?php switch(变量){ //字符串,整型 case 具体值: 执行代码; break; case 具体值2: 执行代码2; break; case 具体值3: 执行代码3; break; default: } ?> switch后放需要判断的变量,而case后是放结果。switch后变值为多少,case的值写的与switch变量执相同段的代码。 上面的break是可选的 上面的default也是可选的 不要在case 后面写成分号,后面是冒号: 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30) switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else.. 上节课中我们用到了rand函数,那我们现在来用rand实现王思总同学的问题选择: <?php //定义出行工具 $tool=rand(1,6); switch($tool){ case 1: echo '司机开车'; break; case 2: echo '民航'; break; case 3: echo '自己家的专机'; break; case 4: echo '火车动车'; break; case 5: echo '骑马'; break; case 6: echo '游轮'; break; } ?> 上面的代码我们只需要简单修改,就可以实现我们在微信上面玩的一个小游戏简单的家务骰子和剪刀石头布。你想想? 你再做做实验: 我们可以把 case 1 代码段中的break去掉,你再试试,什么效果? 我们再来写一个简单的星期判断,写法也可以变的怪一些哟: <?php //得到今天是星期几的英文简称 $day = date('D'); switch($day){ //拿学校举例,我们让星期一、二、三是校长日 case 'Mon': case 'Tue': case 'Wed': echo '校长日'; break; echo '星期三'; break; case 'Thu': echo '星期四'; break; case 'Fri': echo '星期五'; break; default: echo '周末,周末过的比周一到周五还要累<br />'; }; ?> 自己做实验试试: 上面的例子发现,不匹配的时候就执行了defaultk吧? 当然你也可以这样,不过这种写太太累了,没有if...else更加简单。我们不用swith...case来做true和false判断
0
博龙8年前
<?php switch(变量){ //字符串,整型 case 具体值: 执行代码; break; case 具体值2: 执行代码2; break; case 具体值3: 执行代码3; break; default: } ?>
0
小圈圈~8年前
如果case 语句后面不添加break,那么switch语句会一直执行下去,直到结束或者遇见break
<?php //以1-6的数字来随机生成出行方式 $cx = rand(1,6); switch($cx){ case 1: echo '老司机带带我'; break; case 2: echo '我们一起看飞机上空姐,啊……好像有什么不对'; break; case 3: echo '自家的专“鸡”,嘿嘿……'; break; case 4: echo '污~污~污~,小火车开车啦!'; break; case 5: echo '让我们红尘作伴,活的潇潇洒洒,策马奔腾共享人世繁华!'; break; case 6: echo '“在广袤的大海上有一群海燕”,我太特么的有才了'; break; } ?>
0
王敏9年前
<?php //得到今天是星期几的英文简称 $day = date('D'); switch($day){ //拿学校举例,我们让星期一、二、三是校长日 case 'Mon': case 'Tue': case 'Wed': echo '校长日'; break; echo '星期三'; break; case 'Thu': echo '星期四'; break; case 'Fri': echo '星期五'; break; default: echo '周末,周末过的比周一到周五还要累<br />'; }; ?>
0