monadic减量运算符--i的行为类似于i-- [Android Studio(Java)]

时间:2015-09-06 13:52:07

标签: java android-studio operators

经过很多'ArrayIndexOutOfBound'消息之后,这个for循环对我有用,但只是因为我补偿了(i-1)。

不--i(t)表示:_在进入循环之前,减1;

for (int i = offset; i > 0; --i) {
    if (Character.isLetter(lnCmplt.charAt(i - 1))) {
      selStart -= 1;
      Log.i("1.for (i-1)= ", (i-1)+" char=["+lnCmplt.charAt(i-1)+"] selStart= "+selStart);
    }
}

Log.i控制台输出(它是真实的,仅修剪过):

  

lnStart = 492 lnEnd = 506 offset = 7 //来自

之前的日志行      

I / 1.for(i-1)= 6 char = [e] selStart = 6 //< - 此值必须为5   (i = 7; - i(= 6); i-1(= 5)

     

I / 1.for(i-1)= 5 char = [k] selStart = 5 ...

[编辑]解决方案:在第一次循环时,不会执行x-crement。

1 个答案:

答案 0 :(得分:1)

这不是一个疯狂的想法,但不是,它没有。

--i在语句的其余部分之前执行,但在执行语句时不会更改。

所以它可以在这里工作:

int i = 0;
System.out.println(--i);

但是在for循环结构中,它完全等同于使用i--