Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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 没有双变量的相同代码_Java - Fatal编程技术网

Java 没有双变量的相同代码

Java 没有双变量的相同代码,java,Java,我不是java程序员。我正在将一个代码转换成另一种语言,我在java中发现了这一行 for (int ii = 0, i = 0; i < n; i += 2, ii++) { for(intii=0,i=0;i

我不是java程序员。我正在将一个代码转换成另一种语言,我在java中发现了这一行

for (int ii = 0, i = 0; i < n; i += 2, ii++) {
for(intii=0,i=0;i
一个for中的两个变量,我必须把它转换成一种没有它的语言

我在谷歌上搜索了好几种解释,但我并不清楚我是否正确地转换了它

据我所知,前面的代码相当于

int ii = 0
for (int i = 0; i < n; i+=2) {
  // do stuff
  ii++
}
intii=0
对于(int i=0;i
正如我看到的,内部变量
I
是控制循环的变量,
ii
只是在递增

该假设和代码正确吗?

在当前循环中:

for (int ii = 0, i = 0; i < n; i += 2, ii++) {

如果您使用for当两个变量的逻辑位于不同位置时,逻辑会有点奇怪,您可以使用while:

int ii = 0, i = 0;
while(i < n) {
    // do stuff
    i += 2;
    ii++;
}
intii=0,i=0;
而(i
您应该能够执行以下操作:

for(int i = 0 ; i < n ; i += 2){
    int ii = i / 2;
    //do stuff
}
for(int i=0;i

这将保持ii的作用域与以前相同,以防在程序的后面部分使用相同的名称。

您是正确的。或者
ii=n/2;
for(int i=0;i
@Tim你为什么用
++ii
而不是
ii++
?这没有什么区别。我曾经有一位C/C++教授,他主张尽可能使用增量前后比较。旧习惯很难改变,尽管它不会改变我的答案。
for(int i = 0 ; i < n ; i += 2){
    int ii = i / 2;
    //do stuff
}