Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这个问题中增量和加法的区别是什么? 公共类解决方案{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); int n=in.nextInt(); int c[]=新的int[n]; for(int c_i=0;c_i_Java_Arrays - Fatal编程技术网

Java 这个问题中增量和加法的区别是什么? 公共类解决方案{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); int n=in.nextInt(); int c[]=新的int[n]; for(int c_i=0;c_i

Java 这个问题中增量和加法的区别是什么? 公共类解决方案{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); int n=in.nextInt(); int c[]=新的int[n]; for(int c_i=0;c_i,java,arrays,Java,Arrays,循环体中的i++仅在c[i]==c[i+1]时执行,因此i在某些迭代中增加1,在其他迭代中增加2 另一方面,循环的增量总是执行的,因此如果循环的增量更改为i++=2(并且循环体内部的i++被删除),i在每次迭代中将增加2 所以 public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.ne

循环体中的
i++
仅在
c[i]==c[i+1]
时执行,因此
i
在某些迭代中增加
1
,在其他迭代中增加2

另一方面,循环的增量总是执行的,因此如果循环的增量更改为
i++=2
(并且循环体内部的
i++
被删除),
i
在每次迭代中将增加2

所以

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int c[] = new int[n];
        for(int c_i=0; c_i < n; c_i++){
            c[c_i] = in.nextInt();
        }
        Arrays.sort(c);
        int t=0;
        for (int i=0;i<n-1;i++){
            if(c[i]==c[i+1]){
                t++;
                i++;
            }
        }
        System.out.println(t);
    }
}

for(int i=0;i循环体中的
i++
仅在
c[i]==c[i+1]
时执行,因此
i
在某些迭代中增加
1
,在其他迭代中增加2

另一方面,循环的增量总是执行的,因此如果循环的增量更改为
i++=2
(并且循环体内部的
i++
被删除),
i
在每次迭代中将增加2

所以

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int c[] = new int[n];
        for(int c_i=0; c_i < n; c_i++){
            c[c_i] = in.nextInt();
        }
        Arrays.sort(c);
        int t=0;
        for (int i=0;i<n-1;i++){
            if(c[i]==c[i+1]){
                t++;
                i++;
            }
        }
        System.out.println(t);
    }
}

for(int i=0;iI不确定我是否理解。在第二个循环中,您有条件地递增“i”,而不是每次迭代。递增i总是在迭代中发生,而另一个递增仅在两个并发值相等时发生。我不确定我是否理解。在第二个循环中,您递增“i”有条件地说,并非每次迭代都是如此。增量i总是在迭代中发生,而另一个增量只有在两个并发值相等时才会发生
i是由i递增的
i是由1递增的
i是由1递增的吗?@SteveBenett这是一个打字错误。谢谢
i是由i递增的
i是由
i递增的
i是由incr递增的由1修订
?@SteveBenett这是一个打字错误。谢谢
    for (int i=0;i<n-1;i+=2){
        if(c[i]==c[i+1]){
            t++;
        }
    }