大家对i++和++i和i+1肯定很熟悉,但是不细细理解其中原因,就很难理解为什么(i+1)和(i++)有时会差这么多,尤其在递归中应用时。
相信大家对i++和++i的区别肯定很了解,前者是先加后传递结果,而后者刚好相反,是先传递结果后加。但是,i+1则没有传递这个过程!加过去就结束了,后面i原来是多少还是多少!这点在递归中的时候尤其要注意!!!
测试代码:
第一种:i+1 结论: 1 2 3 4 5
public class test {
public static void main(String[] args) {
for(int i=0; i<5; i++){
aa(i+1); // 注意这行的改变!
}
}
public static void aa(int i){
System.out.print(i + " ");
}
}
第二种: i++ 结论:0 2 4
public class test {
public static void main(String[] args) {
for(int i=0; i<5; i++){
aa(i++); //注意这行的改变
}
}
public static void aa(int i){
System.out.print(i + " ");
}
}
第三种: ++i 结论: 1 3 5
public class test {
public static void main(String[] args) {
for(int i=0; i<5; i++){
aa(++i); //注意这行的改变
}
}
public static void aa(int i){
System.out.print(i + " ");
}
}