相同的代码没有double变量

时间:2019-03-22 05:29:47

标签: java

我不是Java程序员。我将代码转换为另一种语言,并在Java中找到了这一行...

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

for中有两个变量...我必须将其转换为没有该变量的语言。

我在Google上四处搜寻,找到了几种解释,但是如果我正确地进行了转换,对我来说还不清楚。

据我了解,以前的代码等效于

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

正如我看到的那样,内部变量i是控制循​​环的变量,而ii只是递增。

那个假设和代码正确吗?

3 个答案:

答案 0 :(得分:2)

当前循环中:

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

确定单个循环变量i的实际循环计数器是确定循环将执行多少次。可以提取ii变量,剩下的就是:

int ii = 0;
for (int i=0; i < n; i += 2) {
    // do something
    ++ii; // move increment inside the loop
}

答案 1 :(得分:0)

如果将用于,则当两个var的逻辑位于不同的位置时,该逻辑会有些奇怪,您可以使用while

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

答案 2 :(得分:0)

您应该可以执行以下操作:

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

如果在程序的后半部分使用相同的名称,这将使ii的范围与以前相同。