---------siwuxie095
批处理简易计算器
@echo off
::设置窗口标题
title DOS 简易计算器
::设置窗口大小
mode con cols=118 lines=30
::设置窗口颜色
color 9f
::设置 xianshi 的值为 N,用于判断是否显示运算优先顺序表
set xianshi=N
echo. & echo.
set /p xianshi=是否显示 DOS 运算符的运算优先顺序表?(Y/N):
:begin
::清屏
cls
if /i "%xianshi%" == "Y" (
echo. & echo.
echo DOS 的各种运算符运算优先顺序表
echo. & echo.
echo "1 ( ) 分组"
echo "2 ! ~ - 一元运算符"
echo "3 * / %%算数运算符"
echo "4 + - 算数运算符"
echo "5 << >> 二进制逻辑移位输入表达式时,该符号需添加双引号或转义字符"
echo "6 & 二进制按位"与"输入表达式时,该符号需添加双引号或转义字符"
echo "7 ^ 二进制按位"异"输入表达式时,该符号需添加双引号或转义字符"
echo "8 | 二进制按位"或"输入表达式时,该符号需添加双引号或转义字符"
echo "9 = *= /= %%= += -= 算数赋值输入表达式时,该符号需添加双引号或转义字符"
echo "10 &= ^= |= <<= >>= 进制运算赋值输入表达式时,该符号需添加双引号或转义字符"
echo "11 , 逗号运算符"
rem 不知道为啥,这个地方用 :: 当注释,会出点小毛病,显示"系统找不到指定的驱动器",下面才是注释QAQ
rem 上面的各个回显,回显的内容都添加了双引号,假如不添加双引号,程序就无
rem 法正常显示,这个课题有待进一步研究。另外,第三行的百分号最难处理,它即
rem 使在双引号内还可以作怪,即使添加了转义字符^也不管用,非得用两个百分号
rem 才能将其显示出来。第九行也是如此,%%=在屏幕显示为%=
echo.
)
echo.
echo ================================================================================
echo DOS 计算器只能计算整数(小数四舍五入),并且计算结果范围为-2147483647 到 2147483647
echo ================================================================================
echo. & echo.
set /p input=请输入计算表达式:
::这里进行运算,结果为 var。
set /a var=%input%
echo.
echo 计算结果: %input%=%var%
echo.
set /p qingqiu=要不要继续计算?(按回车继续,按任意键退出):
::判断,如果输入的是回车,将进行下一次运算,否则退出程序
if /i "%qingqiu%" == "" (goto begin) else (exit)
sublime中:
运行一览:
------------------------------------------------------------------------
一个困惑:
@echo off
echo请分别输入三个数字:
set /p a=
set /p b=
set /p c=
echo合并结果为:
set e= %a%
set /p var=%e:~-7%<nul
set e= %b%
set /p var=%e:~-7%<nul
set e= %c%
set /p var=%e:~-7%<nul
echo.
pause
sublime中:
运行一览:
如果输入其他字符,如 a b c + - _ (注意:等号 = 例外),
都会正常显示,但输入个位数字就无法显示,如下:
关于等号 =,不能单独一行 或 位于开头
修改一下:对每个 <nul 前面加个空格
(程序又没问题了…很奇怪〔等号依然不能放一行的开头〕)
运行一览:
【made by siwuxie095】
