标题: [代码合集] 计算阶乘的BAT代码为何不能产生输出结果? [打印本页]
作者: m82170560 时间: 2013-1-23 16:48 标题: 计算阶乘的BAT代码为何不能产生输出结果?
- @echo off
- :start
- cls
- set /a w=1
- set /p n=请你输入要求的数:
- if %n% GEQ 17 (echo 你所输入的数据已经产生越界了请重新输入 (0-16)
- pause
- goto start)
- else
- for /l %%a in (1 1 %n%) do set /a w*=%%a
- echo %n% 的阶乘是%w%
- echo -----------------------------------
- echo ------------1继续操作--------------
- echo ------------2退出操作--------------
- echo -----------------------------------
- :mid
- set /p b=请输入你的选择:
- ::if %b%==1 (goto start) else goto end
- if %b%==1 (goto start) else if %b%==2 (goto end) else (echo 你的输入有误请重新输入:
- ( goto mid))
- :end
- exit
复制代码
作者: BAT-VBS 时间: 2013-1-23 19:28
把@echo off删掉
把exit删掉
把代码保存为C:\test.bat
开始
运行
cd /d C:\
test.bat
把结果贴出来看看
作者: 怪怪的僵尸 时间: 2014-1-14 08:53
没有变量延迟。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
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |