在以下代码的for(j = i + 1 ...)和for(j = ++ i ...)内部for循环中,我得到了不同的结果。请任何人解释在初始化过程中for循环中发生了什么?
public class DuplicateElementsInArray {
public static void main(String[] args) {
String[] names = {"Java", "Python", "C++", "JavaScript", "Java", "Ruby", "C"};
//This is a worst Solution
for(int i = 0; i < names.length; i++) {
//for(int j = i++; j < names.length; j++) {
//for(int j = ++i; j < names.length; j++) {
for(int j = i + 1; j < names.length; j++) {
//System.out.println("j: " + j);
if(names[i].equals(names[j]))
System.out.println("duplicate element: " + names[i]);
}
}
}
}
答案 0 :(得分:10)
i
保持++i
的当前值不变。
i
以i
递增,即{{1}}的值在计算该表达式后为1。
答案 1 :(得分:-1)
第一种方法只是将j设置为i + 1。
第二种方法是预递增的示例,在这种情况下,它会返回完全相同的值。
阅读此内容可获得有关变量How do the post increment (i++) and pre increment (++i) operators work in Java?递增的更多具体信息和用法