j = i + 1和j = ++ i之间的差;

时间:2018-08-31 23:40:05

标签: java

在以下代码的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]);
                }
            }
        }
    }

2 个答案:

答案 0 :(得分:10)

i保持++i的当前值不变。

ii递增,即{{1}}的值在计算该表达式后为1。

答案 1 :(得分:-1)

第一种方法只是将j设置为i + 1。

第二种方法是预递增的示例,在这种情况下,它会返回完全相同的值。

阅读此内容可获得有关变量How do the post increment (i++) and pre increment (++i) operators work in Java?递增的更多具体信息和用法