【发布时间】:2012-10-07 08:12:04
【问题描述】:
假设在某些情况下,您希望在同一个 for 循环中增加和减少值。在这组情况下,在某些情况下,您可以通过利用情况的性质来“欺骗”它——例如,反转字符串。
由于构建字符串的性质,我们实际上不必操作迭代或添加额外的计数器:
public static void stringReversal(){
String str = "Banana";
String forwardStr = new String();
String backwardStr = new String();
for(int i = str.length()-1; i >= 0; i--){
forwardStr = str.charAt(i)+forwardStr;
backwardStr = backwardStr+str.charAt(i);
}
System.out.println("Forward String: "+forwardStr);
System.out.println("Backward String: "+backwardStr);
}
但是,假设存在另一种情况,我们只想打印从初始值到 0 的递减值和从 0 到初始值的递增值。
public static void incrementAndDecrement(){
int counter = 0;
for(int i = 10; i >= 0; i--){
System.out.println(i);
System.out.println(counter);
counter++;
}
}
这很好用,但必须创建第二个计数器来增加似乎很麻烦。是否有任何数学技巧或涉及 for 循环的技巧可以使 counter 变得多余?
【问题讨论】:
-
简单算术有什么问题?
10 - i? -
@JakeKing 睡眠剥夺,我相信。
标签: java for-loop increment decrement