永发信息网

一个Java结果问题

答案:4  悬赏:60  手机版
解决时间 2021-06-05 15:02

public class eg5 {
public static void main (String [] args){
int i=0,j=1;
if ((i++==1)&&(j++ ==2)){
i=42;
}
System.out.println("i="+i+",j="+j);
}
}

我运行后结果是:i=1,j=1

其实我以为是:i=42,j=1

怎么做?

最佳答案
你其实是i++和++i没弄明白
i++,先运算完再加
++i,加完再运算
简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。
而 a = ++i,相当于 i=i+1; a = i; (先i = i + 1,再使用i的值)
而 a = i++,相当于 a = i; i=i+1; (先使用i的值,再i = i + 1)

全部回答
java里,哪是个短路,与非短路的问题

这就是先赋值后自加的问题,问题出在if ((i++==1)&&(j++ ==2))

你可以把i++和j++放到外面去:i++;j++;if ((i==1)&&(j ==2))....或者if ((++i==1)&&(++ j==2))

i=42就可以出来

不过那个j就会等于二

这个要看i++的执行顺序了,

i++是先执行i=i然后是i=i+1;

所以你的if中i++是不等于1的,

要想达到你以为的结果可以把i++改成++i

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么加入神起的官方网站?因为听说纪念日才可
有没有好的ps模板
怎么样才能让QQ空间地址显示为绑定的邮箱帐号
想请假老师不在怎么办
宠物买来到底有什么用啊?
鄂城区鄂州楼下小学这个地址在什么地方,我要
NOKIA5320一些小问题
QQ华夏问题??
谁知道宝儿的《moon&sunrise》的MP3网址
免费的电影下载网
天士力大药房沈阳明廉分店地址有知道的么?有
求郑源所有歌曲名?
为什么把苹果手机评为全球最差的手机?
为什么 三星手机 上网不能打汉字?是水货的原
今后几年国内汽车运输业前景如何?
推荐资讯
win7占用多大内存?
男友喝多了与前女友发生了关系我怎么理解这个
我的爱是否已过期?
手机上网怎样进QQ群里聊天
我家电脑用的是卡巴斯基为什么一玩魔兽就会提
欧洲测智商经典题目 求助
假如我想把电视和计算机相连接,也就是在计算
世界上最快的摩托车最快能跑多快?
萨尔图区大庆市建筑装饰协会在哪里啊,我有事
用键盘切换浏览器上的多个窗口
急!手机sim卡丢了要补办!在线等!
qq的图标怎么点亮呀?急+-+*-*
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?