#!/usr/bin/php
<?php
/**
* @return void
*/
function extracted()
{
while (true) {
echo "请输入第一个数字: ";
$inputStr1 = trim(fgets(STDIN)); // 读取一行输入并去掉两端的空白字符
if (!is_numeric($inputStr1)) {
echo "错误:第一个输入必须是一个数字。\n";
continue; // 如果输入不是数字,则跳过当前循环并重新开始
}
a:
echo '请输入运算符 (+, -, *, /): ';
$operator = trim(fgets(STDIN));
if (!in_array($operator, ['+', '-', '*', '/'])) {
echo "错误:请输入有效的运算符(+、-、*、/)。\n";
goto a;//返回上一个操作
}
b:
echo '请输入第二个数字: ';
$inputStr2 = trim(fgets(STDIN));
//如果等于0
if ($operator == '/' && $inputStr2 == 0) {
echo "错误:除数不能为零。\n";
goto b;//返回上一个操作
}
#如果被除数比除数小
if ($operator == '/' && $inputStr1 < $inputStr2) {
echo "错误:被除数不能比除数小。\n";
goto b;//返回上一个操作
}
if (!is_numeric($inputStr2)) {
echo "错误:第二个输入必须是一个数字。\n";
goto b;//返回上一个操作
}
// 计算结果
$result = null;
switch ($operator) {
case '+':
$result = $inputStr1 + $inputStr2;
break;
case '-':
$result = $inputStr1 - $inputStr2;
break;
case '*':
$result = $inputStr1 * $inputStr2;
break;
case '/':
$result = $inputStr1 / $inputStr2;
break;
}
$result = round($result, 2);#保留两位小数
echo "结果是: $result\n";
echo '再次回车继续新的运算,或输入 q 退出: ';
$continue = trim(fgets(STDIN));
if ($continue === 'q') {
break; // 如果用户输入 q,则退出循环
}
}
}
extracted();
?>
本人用php开发的原创的命令行计算器程序
最新推荐文章于 2024-07-25 21:48:30 发布