首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的Java语法

奇怪的Java语法
EN

Stack Overflow用户
提问于 2013-08-04 05:12:30
回答 5查看 1.3K关注 0票数 6

当我遇到这个问题时,我正在做计算机科学UIL考试表:

下面的输出是什么?

代码语言:javascript
复制
int a = 5;
int b = 7;
int c = 10;
c = b+++-c--+--a;
System.out.println(a + " " + b + " " + c);

我写下了答案“由于语法错误没有输出”,但我错了。真正的答案是481!(我亲自测试过)

有人能给我解释一下4号线的工作原理吗?

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-08-04 05:17:55

我添加了一些括号:

代码语言:javascript
复制
int a = 5;
int b = 7;
int c = 10;
c = (b++) + (-(c--)) + (--a);
System.out.println(a + " " + b + " " + c);

b++:在使用b之后,b=b+1

使用c后的c- : c=c-1

--a :使用a之前的a=a-1

票数 14
EN

Stack Overflow用户

发布于 2013-08-04 05:18:04

这样看吧:

代码语言:javascript
复制
(b++) + (-(c--)) + (--a)

这应该更有意义!

看看算子优先,看看它为什么是这样工作的。

票数 6
EN

Stack Overflow用户

发布于 2013-08-04 05:20:51

看看c的初始化,c = (b++) + (-(c--)) + (--a);

为了你的学习目的,他们对它进行了压缩和故意混淆。代码就是这么说的,c = (b + 1) + (-(c - 1)) + (a - 1);

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18039908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档