第一个索引++显示值"1"而不是"2".
为什么值不会增加?
任何输入都会有所帮助.
package scratch;
class Feline {
{
index = 1;
}
int index;
public static void main(String[] args) {
new Feline().go();
}
void go(){
System.out.println(index);
System.out.println(index++);
System.out.println(index++);
System.out.println(index++);
}
}
Result:
1
1
2
3
Run Code Online (Sandbox Code Playgroud)
因为您正在使用在增量++变量之后发生的后增量运算符.它的值是变量的当前值,之后会发生增量.
[T]将值1添加到变量的值中,并将总和存储回变量中.
和
后缀增量表达式的值是存储新值之前的变量值.
它会增加 - 在返回当前值之后.
System.out.println(index);
Run Code Online (Sandbox Code Playgroud)
......只是打印1.
System.out.println(index++);
Run Code Online (Sandbox Code Playgroud)
...打印1 然后递增index到2.
System.out.println(index++);
Run Code Online (Sandbox Code Playgroud)
...打印2 然后递增index到3.
System.out.println(index++);
Run Code Online (Sandbox Code Playgroud)
...打印3 然后递增index到4.