a563975374 发表于 2018-2-23 14:07:01

目前学到现在自己解决不了问题总结,求大佬指点迷津

1.“++”的问题。怎么想也想不明白

2.在java中表示 “a^2”应该怎么设置?(a*a)我知道,如果我想表示 “a^n”该不会要写成“a*a*...*n”吧,学习的不多,大佬别见笑啊,小白一枚


有多少人刚开始学java就跟我一样卡在“++“吗,”--“了?

°蓝鲤歌蓝 发表于 2018-2-23 14:22:30

本帖最后由 °蓝鲤歌蓝 于 2018-2-23 14:23 编辑

我是学Python的,Java学过一点,说错莫笑。
1. c = a*b++,这里 b++ 是用了再自增。所以 c = 3*4 = 12 ,b = 4+1 = 5.
2.d = ++a*b(这个b是上面那个自增之后的b,所以是5),++a是自增之后再用,所以是a = 3+1 = 4, d = 4*5 = 20.
3.e = ++a*b(这个a是上面自增后的a,b是自增后的b),同上,所以是 a = 4+1 = 5, e = 5*5 = 25.
4.f = a*b++(上面的a,上面的b),所以是 5*5 = 25,b = 5+1 = 6。

a563975374 发表于 2018-2-23 14:32:18

°蓝鲤歌蓝 发表于 2018-2-23 14:22
我是学Python的,Java学过一点,说错莫笑。
1. c = a*b++,这里 b++ 是用了再自增。所以 c = 3*4 = 12 ,b ...

谢谢大佬,但是还是有些不明白,c=a*b++;a= 3; b = 4; a*b=12; 根据数学定律先乘除,后加减,b后面加1不应该还是13么,还是说这里的b+1忽略算到下一次的计算里面了,如果只有1次输出,是不是后面的自加1就忽略了,如果有多次输出,前面的自加或者自减都运行在接来下的运算中了?

°蓝鲤歌蓝 发表于 2018-2-23 14:36:39

a563975374 发表于 2018-2-23 14:32
谢谢大佬,但是还是有些不明白,c=a*b++;a= 3; b = 4; a*b=12; 根据数学定律先乘除,后加减,b后面加 ...

这个是 a*b++,不是(a*b)++,这个的意思是 b自增,不是乘积自增。
b++是b先被使用之后再自增,也就是说先执行 a*b之后,再执行 b++,所以下次用的b
就是自增后的 b了。
而++a*b这种就是先执行a自增,a = a+1之后再执行乘积,a*b(这个a已经自增过了)。

a563975374 发表于 2018-2-23 14:39:03

°蓝鲤歌蓝 发表于 2018-2-23 14:36
这个是 a*b++,不是(a*b)++,这个的意思是 b自增,不是乘积自增。
b++是b先被使用之后再自增,也就是说 ...

这下明白了,谢谢大佬,看来又要拿笔和纸埋头苦算了

°蓝鲤歌蓝 发表于 2018-2-23 14:43:53

a563975374 发表于 2018-2-23 14:39
这下明白了,谢谢大佬,看来又要拿笔和纸埋头苦算了

不客气,根本不算大佬,只能说这部分刚好学过哈哈。

a563975374 发表于 2018-2-23 14:48:31

°蓝鲤歌蓝 发表于 2018-2-23 14:43
不客气,根本不算大佬,只能说这部分刚好学过哈哈。

反正比我们老师好太多了,那傻货问他就知道说后面的值自增1,前面的值自增1,你再追着深问就说你用的多久了就懂了,听的根本就是云里雾里,现在也懒的去问,都是自己使劲想,想不明白求助各位大牛

°蓝鲤歌蓝 发表于 2018-2-23 14:49:40

a563975374 发表于 2018-2-23 14:48
反正比我们老师好太多了,那傻货问他就知道说后面的值自增1,前面的值自增1,你再追着深问就说你用的多久 ...

可能他很忙?或者不怎么负责任吧。
页: [1]
查看完整版本: 目前学到现在自己解决不了问题总结,求大佬指点迷津