没有变量延迟。else子句必须放在if子句右括号的同一行上。没有考虑0的阶乘是1.- @echo off&setlocal enabledelayedexpansion
- :start
- cls
- set /a w=1
- set /p n=请你输入要求的数(0-16):
- if !n! GEQ 17 (echo 越界了请重新输入 【0-16】&pause&goto start )
- if !n!==0 (set w=1&goto xs)
- for /l %%a in (1 1 !n!) do (
- set /a w*=%%a
- )
- :xs
- echo !n! 的阶乘是!w!
- :mid
- echo -----------------------------------
- echo ------------1继续操作--------------
- echo ------------2退出操作--------------
- echo -----------------------------------
- set /p b=请输入你的选择:
- if !b! ==1 (goto start)
- if !b!==2 (exit)
- echo 你的输入有误请重新输入&pause&goto mid
复制代码
|