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++;
}
}