如何修复这个斐波那契批处理列表?
How to fix this fibonacci batch lister?
我研究了 操作数和运算符、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 行
代码复杂难懂
在第 #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
@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
我研究了 操作数和运算符、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 行 代码复杂难懂
在第 #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
@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