JAVA面试题解惑系列(十一)——这些运算符你是否还记得
有些运算符在JAVA语言中存在着,但是在实际开发中我们或许很少用到它们,在面试题中却时常出现它们的身影,对于这些运算符的含义和用法,你是否还记得呢
自增(++)和自减(--)运算符我们先来回答几个问题吧:Java代码1
inti=0;2
intj=i++;3
intk=--i;这段代码运行后,i等于多少
好,继续:Java代码1
inti=0;2
intj=i+++++i;3
intk=--i+i--;代码执行后i、j、k分别等于多少呢
好,再继续:Java代码1
inti=0;2
System
println(i++);这段代码运行后输出结果是什么
Java代码1
floatf=0
doubled=0
charc='a';6
c++;上面这段代码可以编译通过吗
如果你能顺利回答到这里,说明你对自增和自减运算符的掌握已经很好了
为了分析出上面提出的几个问题,我们首先来回顾一下相关知识:自增(++):将变量的值加1,分前缀式(如++i)和后缀式(如i++)
前缀式是先加1再使用;后缀式是先使用再加1
自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)
前缀式是先减1再使用;后缀式是先使用再减1
在第一个例子中,intj=i++;是后缀式,因此i的值先被赋予j,然后再自增1,所以这行代码运行后,i=1、j=0;而intk=--i;是前缀式,因此i先自减1,然后再将它的值赋予k,因此这行代码运行后,i=0、k=0
在第二个例子中,对于intj=i+++++i;,首先运行i++,i的值0被用于加运算(+),之后i自增值变为1,然后运行++i,i先自增变为2,之后被用于加