Batch file 如何修复此斐波那契批处理列表器?
我在这个网站上研究了操作数和运算符、set/a和setlocal EnableDelayedExpansion,但我的代码最终还是说明了这一点 告诉我我的操作数丢失了Batch file 如何修复此斐波那契批处理列表器?,batch-file,variables,fibonacci,Batch File,Variables,Fibonacci,我在这个网站上研究了操作数和运算符、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
@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关闭
setlocal enableextensions disabledelayedexpansion
设置n1=0
设置n2=1
:循环
回声%n2%
设置/a“n2=n1+n2”&设置“n1=%n2%”
如果%n2%gtr 0转到环路
谢谢,它确实有效!我在第18行和第19行之间添加了ping localhost>nul,以将生成过程延迟到可查看的时间范围。哦,这样可以修复当达到更高值时出现的负值。伟大的我很感激你的回答,这可能会带来新的想法来简化我的代码到一个更合理的方式,但它没有修复我发布的原始代码,所以我只能给你一个投票,但它没有解决我的问题。对不起。@kornkaobat,我看到Sam Denty的答案解决了你的问题,所以,没有任何理由让答案以同样的方式解决问题。我唯一的意图是包括一种解决问题的替代方法,以防有人发现这个问题会有用。哦,好吧。因此,重复的问题较少,更多的读者可以找到更多不同的答案来解决这个问题。谢谢你的澄清!