PHP学习——12 程序运行流程控制

版权声明:本文为博主原创文章,仅供学习交流,未经博主允许不得转载。 https://blog.csdn.net/zjy_android_blog/article/details/82229057

目录

一、条件判断if

二、switch分支语句

三、循环语句for

四、循环语句while

五、循环语句do-while


一、条件判断if

// if结构语法
// 结构1,单分支
if(条件语句){
  // code...
}
// 或者 结构2,双分支
if(条件语句){
  // code...
}else{
  // code...
}
// 或者 结构3,多分支,else if 可已有多个
if(条件语句1){
  // code...
}else if(条件语句2){
  // code...
}elseif(条件语句3){
  // code...   elseif 与else if 是一样的效果
}else{
  // code...
}

接下来就是例子

<?php
if(true){
  echo '真1';
}
echo "<hr>";

if(true){
  echo "真2";
}else{
  echo "假";
}
echo "<hr>";
if(false){
  echo "假";
}elseif(true){
  echo "真3";
}else{
  echo "其他";
}
?>

// 判断数值是否为偶数
<form action="" method='post'>
  <label for='num'>请输入</label>
  <input type="text" name="num" placeholder="请输入合法数字">
  <input type="submit" value="提交">
</form>
<?php
if(isset($_POST['num'])&&$_POST['num']!==""){
  $num = $_POST['num'];
  if($num%2==0){
    echo $num."是偶数。";
  }else{
    echo $num."是奇数。";
  }
}else{
  echo "请输入合法数字";
}
?>

二、switch分支语句

switch 语句类似于具有同一个表达式的一系列 if 语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。switch进行的是松散比较(类似==操作,switch进行的是值的对比,不进行数值的类型对比)。switch语法结构:

switch (条件表达式) {
  case 值1:
    // code...
	break;
  case 值2:
    // code...
	break;
  // ... 多个case
  default:
	// code
	break;
}

switch实例操作:

<?php

// 1.如果不给与每个case break语句,则会进行下一个case的判断
switch (true) {
  case 1:
	echo '执行了 case 1';
	echo '<br>';
  case 2:
	echo '执行了 case 2';
	echo '<br>';
}
// 以上输出:
// 执行了 case 1
// 执行了 case 2

// 2.switch的比较是否包含了类型比较?
switch (2) {
  case true:
	echo '执行了 case true';
	echo '<hr>';
  case 2:
	echo '执行了 case 2';
	echo '<hr>';
}
// 以上的输出结果:
// 执行了 case true
// 执行了 case 2
// 此结果说明 switch不进行类型的比较,甚至会将表达式的结果值进行类型的自动转换,
// 在进行case true的比较时,表达式结果值2被转换成了布尔值true

?>

<!-- 实例 -->
<form action='' method='post'>
  <datalist id='school'>
    <option value='中国传媒大学'>中国传媒大学1</option>
    <option value='北京大学'>北京大学</option>
    <option value='中山大学'>中山大学</option>
    <option value='社会大学'>社会大学</option>
	</datalist>
	<label for='school'>我的志愿大学:</label>
	<input type='text' name='school' list='school'>
	<input type='submit' value='提交'>
</form>

<?php
if (isset($_POST['school']) && $_POST['school'] != '') {
	$school = $_POST['school'];
	switch ($school) {
	case '中国传媒大学':
		echo $school;
		break;
	case '北京大学':
		echo $school;
		break;
	case '中山大学':
		echo $school;
		break;
	case '社会大学':
		echo $school;
		break;
	default:
		echo $school . '是新的学校?';
		break;
	}
}

?>

三、循环语句for

for循环语法:

for (循环初始变量; 条件表达式; 修改循环的控制变量) {
	// 循环体语句
}

for实例操作:

<?php
// 1.最简单实例
for ($i = 0; $i < 3; $i++) {
  echo $i.'<br>';// 循环体
}
// 0
// 1
// 2

// 2.for循环实现表格打印
echo <<<'FORM'
<form action='' method='post'>
  <label>请输入表格的行数和列数</label><br>
  <input type='number' name='row'>行
  <input type='number' name='col'>列
  <input type='submit' value='提交'>
</form>
FORM;
$r = isset($_POST['row'])?$_POST['row']:0;
$c = isset($_POST['col'])?$_POST['col']:0;
echo '<table border="1" style="border-collapse:collapse;">';
for($row=0;$row<$r;$row++){
  echo '<tr>';
  for($col=0;$col<$c;$col++){
    echo '<td style="padding:10px;">'.$row.$col.'</td>';
  }
  echo '</tr>';
}
echo '</table>';
?>

输入3行4列,表格打印如下:

四、循环语句while

while语句是包含了判断的循环,我们可以将该语句看作一个可以循环执行的if判断。当条件表达式的判定结果,为真则执行循环体,为假则不执行,结束循环。(当我们不知道循环的次数时可以使用该循环实现)

while的语法结构如下:

while(条件表达式){
  // 循环体
}
注意:
1.循环初始条件在while外
2.条件表达式结果为true时执行循环体
3.循环体内必须有更新循环条件的语句,否则会进入死循环

while实例操作:

<?php
// while循环实现表格打印
echo <<<'FORM'
<form action='' method='post'>
  <label>请输入表格的行数和列数</label><br>
  <input type='number' name='row'>行
  <input type='number' name='col'>列
  <input type='submit' value='提交'>
</form>
FORM;
$r = isset($_POST['row'])?$_POST['row']:0;
$c = isset($_POST['col'])?$_POST['col']:0;
echo '<table border="1" style="border-collapse:collapse;">';
$row=0;
while($row<$r){
  echo '<tr>';
  $col=0;
  while($col<$c){
    echo '<td style="padding:10px;">'.$row.$col.'</td>';
    $col++;
  }
  echo '</tr>';
  $row++;
}
echo '</table>';
?>

结果同for循环实现的结果相似。

五、循环语句do-while

do-while语句是包含了判断的循环,与while非常相相似;

do {
  // 循环体
} while (条件表达式)

注意:
1.不检测条件,先执行一次循环体;
2.条件表达式结果为true时执行循环体
3.循环体内必须有更新循环条件的语句,否则会进入死循环
4.与while不同,至少要执行一次循环体

do-while实例操作

<?php
// while循环实现表格打印
echo <<<'FORM'
<form action='' method='post'>
  <label>请输入表格的行数和列数</label><br>
  <input type='number' name='row'>行
  <input type='number' name='col'>列
  <input type='submit' value='提交'>
</form>
FORM;
$r = isset($_POST['row'])?$_POST['row']:0;
$c = isset($_POST['col'])?$_POST['col']:0;
echo '<table border="1" style="border-collapse:collapse;">';
$row=0;
do{
  echo '<tr>';
  $col=0;
  do{
    echo '<td style="padding:10px;">'.$row.$col.'</td>';
    $col++;
  }while($col<$c);
  echo '</tr>';
  $row++;
}while($row<$r);
echo '</table>';
?>

未输入值之前会执行一次循环:

输入3行4列:

猜你喜欢

转载自blog.csdn.net/zjy_android_blog/article/details/82229057