Day032 运算符面试题
Posted 南方风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day032 运算符面试题相关的知识,希望对你有一定的参考价值。
运算符面试题
题1
short s=3;
s=s+2;//步骤1# 运算符面试题
----
题1
```java
short s=3;
s=s+2;//步骤1
s+=2;//步骤2
//步骤1和2有什么区别
解析:步骤1报错,因为2为int型,s+2是int型,不能用short型s接收
步骤2:用+=、-=、*=、/=、%=不会改变变量本身的数据类型,因此步骤2正确。
题2
int i=1;
i*=0.1;
System.out.println(i);//0
i++;
System.out.println(i);//1
输出结果
0
1
解析:因为用+=、-=、*=、/=、%=不会改变变量本身的数据类型,因此i乘0.1之后还是int型,即为0,再++,为1。
题3:
int m=2;
int n=3;
n*=m++;
System.out.println("m="+m);
System.out.println("n="+n);
输出结果
m=3
n=6
解析:m++先运算再自增。
题4:
int x=10;
x+=(x++)+(++x);
System.out.println(x);
输出结果
32
解析:x++先运算再自增,++x先自增再运算。
题5
int x=1;
int y=1;
if(x++==2 & ++y==2){
x=7;
}
System.out.println("x="+x+",y="+y);
输出结果
x=2,y=2
int x=1;
int y=1;
if(x++==2 && ++y==2){
x=7;
}
System.out.println("x="+x+",y="+y);
输出结果
x=2,y=1
int x=1;
int y=1;
if(x++==1 | ++y==1){
x=7;
}
System.out.println("x="+x+",y="+y);
输出结果
x=7,y=2
int x=1;
int y=1;
if(x++==1 || ++y==1){
x=7;
}
System.out.println("x="+x+",y="+y);
输出结果
x=7,y=1
解析:& 、|不是短路运算符,而&&、||是短路运算符
题6:
public static void main(String[] args) {
boolean x=true;
boolean y=false;
short z=42;
if(y==true)
if((z++==42)&&(y=true))z++;
if((x=false)||(++z==45))z++;
System.out.println("z="+z);
}
输出结果
43
解析:知识点:if判断,短路运算、前后++,赋值“=”和“==”的区别,用+=、-=、*=、/=、%=不会改变变量本身的数据类型
s+=2;//步骤2
//步骤1和2有什么区别
解析:步骤1报错,因为2为int型,s+2是int型,不能用short型s接收
步骤2:**用+=、-=、*=、/=、%=不会改变变量本身的数据类型**,因此步骤2正确。
----
题2
```java
int i=1;
i*=0.1;
System.out.println(i);//0
i++;
System.out.println(i);//1
输出结果
0
1
解析:因为用+=、-=、*=、/=、%=不会改变变量本身的数据类型,因此i乘0.1之后还是int型,即为0,再++,为1。
题3:
int m=2;
int n=3;
n*=m++;
System.out.println("m="+m);
System.out.println("n="+n);
输出结果
m=3
n=6
解析:m++先运算再自增。
题4:
int x=10;
x+=(x++)+(++x);
System.out.println(x);
输出结果
32
解析:x++先运算再自增,++x先自增再运算。
题5
int x=1;
int y=1;
if(x++==2 & ++y==2){
x=7;
}
System.out.println("x="+x+",y="+y);
输出结果
x=2,y=2
int x=1;int y=1;if(x++==2 && ++y==2){ x=7;}System.out.println("x="+x+",y="+y);
输出结果
x=2,y=1
int x=1;
int y=1;
if(x++==1 | ++y==1){
x=7;
}
System.out.println("x="+x+",y="+y);
输出结果
x=7,y=2
int x=1;
int y=1;
if(x++==1 || ++y==1){
x=7;
}
System.out.println("x="+x+",y="+y);
输出结果
x=7,y=1
解析:& 、|不是短路运算符,而&&、||是短路运算符
题6:
public static void main(String[] args) {
boolean x=true;
boolean y=false;
short z=42;
if(y==true)
if((z++==42)&&(y=true))z++;
if((x=false)||(++z==45))z++;
System.out.println("z="+z);
}
输出结果
43
解析:知识点:if判断,短路运算、前后++,赋值“=”和“==”的区别
以上是关于Day032 运算符面试题的主要内容,如果未能解决你的问题,请参考以下文章