0

所以我正在为我的一门课程做一个最终项目,目标基本上是让用户输入初始投资,以及价值贬值的年数......它会以一个确定的恒定值贬值由投资除以年数。

在 for 循环中,它应该从“账面价值”中减去“年度”并打印出每年的新账面价值......数学本身可以正常工作(我相信?)因为如果我在我的 for 循环之外回显这些值,它们是它们应该是什么,但是使用 for 循环中的 echo 语句,我没有得到我需要它输出的东西(账面价值在循环内不会改变)。

不太确定该去哪里,而且谷歌还没有让我做得很好。感谢您提供的任何帮助!

@ECHO OFF
:HEADER  
REM Program : final_q8.bat
REM Author :
REM Date : 
REM Purpose : if statement integer sort 
REM ----------------------------------------------- 

:START
CLS

SET /P INVEST="Please enter the initial investment amount: "
SET /P YEARS="Please enter the # of years the machine will be depreciated: "
SET /A ANNUAL=INVEST/YEARS

SET BOOKVALUE=%INVEST%

ECHO YEAR    ANNUAL DEPRECIATION    BOOK VALUE

FOR /L %%C IN (1, 1, %YEARS%) DO (
    SET /A BOOKVALUE=BOOKVALUE-ANNUAL
    ECHO  %%C       %ANNUAL%                   %BOOKVALUE%
)

PAUSE 
:END 
:: Exit and return an errorcode of 0 
EXIT /B 0
4

1 回答 1

0

尝试启用Delayed expansion

@echo off
setlocal enabledelayedexpansion
...

For然后在循环内使用感叹号

FOR /L %%C IN (1, 1, %YEARS%) DO (
 SET /A BOOKVALUE=BOOKVALUE-ANNUAL
 ECHO  %%C       !ANNUAL!                   !BOOKVALUE!
)
于 2014-06-16T14:27:24.563 回答