所以我在一个地方声明一个变量并初始化它。现在稍后我需要使用它来循环,而它仍然是正的所以我需要减少它。对我来说,使用条件和减量进行循环调用for for但是对于它我们缺少初始化的第一部分。但我不需要初始化任何东西。那么我该如何以一种很好的方式解决这个问题。
for (space = space; space > 0; space--)//my first way to do it but ide doesnt like it
第二种方式:
for (; space > 0; space--)//my friend recommended me this way but looks kind weird
我有更多的方法可以让循环只有条件和增量/减量吗?
P.S拼写检查不知道“减量”是一个单词。我很确定它是......
答案 0 :(得分:5)
另一种方式就是这个:
Integer i = 10;
while(--i>0) {
System.out.println(i);
}
当i为0且条件为假时...所以..它将从9打印到1(9项)
Integer i = 10;
while(i-->0) {
System.out.println(i);
}
将从9打印到0 ...(10项);
答案 1 :(得分:4)
后一种方式是合理的。另一种选择 - 如果你没有任何中断/继续陈述 - 将是:
while (space > 0)
{
// Code
space--;
}
答案 2 :(得分:0)
使用while循环?
while (space > 0) { /* code */ space--; }
如果你不需要循环体中space
的值:
while (space-- > 0) { /* code */ }
答案 3 :(得分:0)
在我看来,这是一个正确的方法。您可以使用能够向前和向后移动的迭代器,但这并不一定都对您的代码有价值。
答案 4 :(得分:0)
当你编写代码时,你应该永远记住,你不仅仅是在编写它以便你现在能够理解它......对任何未来的读者来说都应该是可以理解的(在你忘记之后可能就是你了你为什么这样做,只要他们有一些编码知识。在我看来,您可能正在尝试重新使用space
变量,因为您已经拥有了它。如果它增加了可读性,那么没有错误开始一个新的。因此,您可能需要考虑在for循环中使用int i = space;
- 我确定您的计算机将在没有堆栈溢出的情况下进行管理,如果您原谅我糟糕的双关语; - )
实际上,考虑将循环重构为一个单独的私有方法,当然,为了可读性而恰当地命名,将space
作为参数传递,并将变量设置为返回的结果。很高兴为您提供代码示例,如果您解释在循环中尝试实现的目标。