无限循环麻烦狂欢



所以,基本上下面的代码给出了一个无限循环。但是,如果我将 i+2 和 f+2 更改为 i++ 和 f++,它们不会给出无限循环。有人可以向我解释为什么会这样吗?谢谢

#!/bin/bash
for ((i=0; i<5; i+2))
do
for ((f=0; f<5; f+2))
do
echo "$i $f"
done
done
你需要

+=,而不是+(另外,i+=2在你的内部循环中应该是f+=2):

for ((i=0; i<5; i+=2))
do
    for ((f=0; f<5; f+=2))
    do
        echo "$i $f"
    done
done

i+2 不会更改 i 的值。它只是将 2 加到当前值 i 并返回结果。 i++通过递增来更改i的值。试试这个:

for ((i=0; i<5; i=i+2))

请注意,i=i+2也可以速记为i+=2。意思是一样的:在当前值i上加 2 并将结果分配给 i

+=语法是简短的,因此您也可以将i+=2表示为i=i+2

for ((i=0; i<5; i+=2))
do
    for ((f=0; f<5; f+=2))
    do
        echo "$i $f"
    done
done

相关内容

  • 没有找到相关文章

最新更新