我不是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
只是递增。
那个假设和代码正确吗?
答案 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的范围与以前相同。