一元减量运算符--我的行为就像我--[Android Studio(Java)]

一元减量运算符--我的行为就像我--[Android Studio(Java)],java,android-studio,operators,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=["+lnCmp

在大量“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偏移量=7//从之前的日志行开始


I/1.for(I-1)=6char=[e]selStart=6//这不是一个疯狂的想法,但不,它不是

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

因此,它将在这里发挥作用:

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

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

您似乎对构成
for
语句的部分的执行顺序感到困惑。@SotiriosDelimanolis:似乎是这样,我会通知我的。thx的链接。现在我明白了。在第一个循环中,不执行x-crement。谢谢