我已经从这个网站上研究了操作数和运算符, set / a 和 setlocal EnableDelayedExpansion ,但仍然以某种方式我的代码结束了 我,我的操作数不见了。
@echo off
cls
setlocal EnableDelayedExpansion
color 0a
title Fibonacci Lister
:Fibonacci
cls
set /a n1=1
echo %n1%
set /a n2=1
echo %n2%
set /a j=3
:loopfunction
set /a n%j%=!n%j-1%!+!n%j-2%!
echo !n%j%!
set /a j=%j%+1
goto :loopfunction
所以我想知道这里有什么问题。它可能在第14行 代码很复杂,很难理解。
答案 0 :(得分:1)
在#14
行,您使用的是名为%j-1%
和%j-2%
的变量,这些变量未被声明。
更新了脚本:
@echo off
setlocal EnableDelayedExpansion
color 0a
title Fibonacci Lister
:Fibonacci
set /a n1=1
echo %n1%
set /a n2=1
echo %n2%
set /a j=3
:loopfunction
set /a j1=j-1&set /a j2=j-2
set /a n%j%=!n%j1%!+!n%j2%!
if "!n%j%!"=="1836311903" goto :EOF
echo !n%j%!
set /a j=j+1
goto :loopfunction
答案 1 :(得分:1)
@echo off
setlocal enableextensions disabledelayedexpansion
set n1=0
set n2=1
:loop
echo %n2%
set /a "n2=n1+n2" & set "n1=%n2%"
if %n2% gtr 0 goto loop