自增自减运算符练习题

第一题
int x = 1,y = 1;

if(x++==2 & ++y==2) {
x =7;
}
System.out.println("x="+x+",y="+y);
输出结果:x=2,y=2

 

 

第二题
int x = 1,y = 1;

if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
输出结果:x=2,y=1

 

 

第三题
int x = 1,y = 1;

if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
输出结果:x=7,y=2

 

 

第四题
int x = 1,y = 1;

if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
输出结果:x=7,y=1

 

练习题5

对于以下,有int x = 5, y = 6, z;

    题目1:z = ++x + y++;

    题目2:z = ++x + x++;

    题目3:x = ++x + x++;

  题目4:z = x > y ? ++x : y++; 

答案:

题目1:x = 6; z = 12; y = 7

题目2:x=7, y = 6, z=12

题目3:x=12

题目4:x = 5, y = 7, z = 6

 

 

练习6

int i = 0;   

int j = i++;   

int k = --i;

这段代码运行后,i等于多少?j等于多少?k等于多少?

i:0
j:0
k:0

 

1. int i = 0;   

2. int j = i++ + ++i;   

3. int k = --i + i--;

代码执行后i、j、k分别等于多少呢?

在第二个例子中,对于int j=i++ + ++i;,首先运行i++,i的值0被用于加运算(+),之后i自增值变为1,然后运行++i,i先自增变为2,之后被用于加运算,最后将i两次的值相加的结果0+2=2赋给j,因此这行代码运行完毕后i=2、j=2;对于int k=--i + i--;用一样的思路分析,具体过程在此不再赘述,结果应该是i=-2、k=-2。

 

 

练习7

int a=5;
int b=++a;   // ++在前 先运算再赋值 现在 a=b=6;
int c=--b+a;  //--优先级比+高,先计算-- c此时b=5再加上a 5+6=11;再赋值

int c=a+(++b); //同理 括号优先级最高 先计算++b 此时b=7 6+7=13;再赋值

 

  • 10
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值