所以我决定使用一个子程序来改进当前的程序。我把它放在自己的批处理文件中进行测试,并在不影响整个程序的情况下正常工作,并且我得到了它的工作保存了一件事。出于某种原因,每次运行时,都会打印出“失踪运算符”作为其第一行。为什么我的批处理脚本将第一行打印为“Missing Operator”?
注意:我知道它是不正确地执行F到C的转换。我现在正在解决这个问题。
我不知道这是为什么,我需要它不打印任何附加行不仅没有行诠释他的计划,但由于成品节目的每个屏幕都有一组号码它将在任何时候显示的行和列。整页上多出一行,它会切断应显示的部分屏幕。
这个子程序(和我使用的测试程序)的代码是:
@echo off
:1
cls
call :ferDesc
echo.
pause
goto 1
:ferDesc
echo off
set /a xsides=54
set /a fer=%random%%%xsides+59
set /a fer1=%fer%-32
set /a cels=%fer1%/1.8
if %fer% leq -40 goto td1
if %fer% leq -30 goto td2
if %fer% leq -20 goto td3
if %fer% leq -10 goto td4
if %fer% leq 0 goto td5
if %fer% leq 10 goto td6
if %fer% leq 20 goto td7
if %fer% leq 30 goto td8
if %fer% leq 40 goto td9
if %fer% leq 50 goto td10
if %fer% leq 60 goto td11
if %fer% leq 70 goto td12
if %fer% leq 80 goto td13
if %fer% leq 90 goto td14
if %fer% leq 100 goto td15
if %fer% leq 110 goto td16
if %fer% leq 120 goto td17
if %fer% leq 130 goto td18
if %fer% geq 131 goto td19
:td1
set td=polar
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td2
set td=artic
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td3
set td=bitterly cold
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td4
set td=very cold
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td5
set td=cold
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td6
set td=wintery
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td7
set td=icey
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td8
set td=frosty
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td9
set td=chilly
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td10
set td=brisk
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td11
set td=cool
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td12
set td=pleasent
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td13
set td=warm
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td14
set td=balmy
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td15
set td=sweaty
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td16
set td=stweltering
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td17
set td=feaverishly hot
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td18
set td=baking
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
:td19
set td=deadly hot
echo It is a %td% day.
echo (%fer% F - %cels% C)
goto :eof
谢谢。除以1.8似乎是螺丝钉的问题,我只需告诉它如何用整数来完成数学运算。多谢,伙计! –
谢谢,如果你认为它有帮助,你可以选择答案。 – 09stephenb