用php編寫簡易計算器實現分支語句知識點的鞏固

<!--2018-08-08 分支語句 實現簡單計算器 -->


<html>
	<head>
		<title>PHP實現計算器(使用分支結構)</title>
	</head>
	
	<body>
		<?php
			$mess="";
			if(isset($_POST['sub']))
			{
				if($_POST['num1']=="")
				{
					$mess = "第一個數不能爲空;<br>";
				}else{
					if(!is_numeric($_POST['num1']))
					{
						$mess = "第一個數必須是數字;<br>";
					}
				}
				
				if($_POST['num2']=="")
				{
					$mess = "第二個數字不能爲空;<br>";
				}else{
					if(!is_numeric($_POST['num2']))
					{
						$mess = "第二個數必須爲數字;<br>";
					}else{
						if($_POST['opt'] == '/' &&$_POST['num2']==0)
						{
							$mess = "除數不能爲0;";
						}
					}
						
				}
			}
		?>
		<table border="1" align="center" width="400">
			<form  method="post">
				<caption><h1>計算器</h1></caption>
				<tr>
					<td>
					<!--解釋一下爲何$_POST['num1']前面要加@ ;
					    因爲此處爲post傳參,沒有重新創建傳參頁面,所以在開始運行時,$POST沒有創建,不存在,所以會報錯
						只有經過一次post之後,頁面纔會顯示正常,所以爲了避免第一次錯誤顯示,在此可能出錯語句前面加了錯誤控制運算符@;
						下面幾個同理;
						
						解析:<option value="+" <?php echo @$_POST['opt']=="+" ? "selected":""?>>+</option>
						$_POST['opt']=="+" ? "selected":""  這是個三元式,如果post傳輸值爲'+' 則輸出selected,否則輸出空;
						selected屬性爲option 屬性,就是當選擇值有多個時,加入selected的值優先展示在屏幕;
						就是爲了記憶上次運算
					-->
						<input type="text" name="num1" value="<?php echo @$_POST['num1']; ?>"/>
					</td>
					
					<td>
						<select name="opt">
							<option value="+" <?php echo @$_POST['opt']=="+" ? "selected":""?>>+</option>
							<option value="-" <?php echo @$_POST['opt']=="-" ? "selected":""?>>-</option>
							<option value="*" <?php echo @$_POST['opt']=="*" ? "selected":""?>>*</option>
							<option value="/" <?php echo @$_POST['opt']=="/" ? "selected":""?>>/</option>
							<option value="%" <?php echo @$_POST['opt']=="%" ? "selected":""?>>%</option>
						</select>
					</td>
					
					<td>
						<input type="text"  name="num2" value="<?php echo @$_POST['num2']; ?>" /> <br>
					</td>
					
					<td>
						<input type="submit" name="sub" value="計算"/>
					</td>
				</tr>
			</form>
		<?php 
			if(isset($_POST['sub']))
			{
				echo '<tr><td colspan="4">';
				
				if(!$mess){
					$sum=0;
					switch($_POST['opt'])
					{
						case "+":$sum=$_POST['num1']+$_POST['num2']; break;
						case "-":$sum=$_POST['num1']-$_POST['num2']; break;
						case "*":$sum=$_POST['num1']*$_POST['num2']; break;
						case "/":$sum=$_POST['num1']/$_POST['num2']; break;
						case "%":$sum=$_POST['num1']%$_POST['num2']; break;
					}
					
					echo "結果:{$_POST['num1']} {$_POST['opt']} {$_POST['num2']} = {$sum}";
				}
				else{
					echo $mess;
				}
				echo '</td></tr>';
			}
		?>
		</table>
	</body>
</html>
						

如有問題,請多指教!!qq:1905772768

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章