Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何修复此斐波那契批处理列表器?_Batch File_Variables_Fibonacci - Fatal编程技术网

Batch file 如何修复此斐波那契批处理列表器?

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

我在这个网站上研究了操作数和运算符、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关闭
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的答案解决了你的问题,所以,没有任何理由让答案以同样的方式解决问题。我唯一的意图是包括一种解决问题的替代方法,以防有人发现这个问题会有用。哦,好吧。因此,重复的问题较少,更多的读者可以找到更多不同的答案来解决这个问题。谢谢你的澄清!