| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:一个简单的JAVA问题!~
只看楼主 加入收藏
tgllz
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-12-11
收藏
 问题点数:0 回复次数:7 
一个简单的JAVA问题!~
public class text
{
public static void main(String [] args)
{
int i=1,y=0;
y=++i*++i;
System.out.println("y="+y);
}
}

在C/C++下运行的结果是9,这个我考试的时候,有考过~

C的概念
i=1
++i=2
++i=3
3*3=9

在JAVA下同样的问题,结果得6!
这是为什么?难道是JAVA和C的区别?JAVA的运行根本概念是什么?
搜索更多相关主题的帖子: JAVA 
2006-09-20 16:23
︷順⑦?zì繎
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2006-3-28
收藏
得分:0 
好像Java是规定前缀式是先执行运算再生成值,后缀式是先生成值再执行运算。

所以就会出现2×3=6喽!!

再加上C语言里这个问题也是永远在争论的问题!编译器不同得到的值也不同!

2006-09-20 16:53
yueritian
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-7-26
收藏
得分:0 
public class Easy
{
public static void main(String [] args)
{
int i=1,y=0;
int a = ++i;
//a = ++i = 2
int b = ++i;
//b = ++i = 3
y=a*b;
System.out.println("y="+y);
}
}

y=6



22岁的我,没有皱纹的我
2006-09-20 17:48
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1986
专家分:4
注 册:2006-7-1
收藏
得分:0 

可能就是编译器问题吧!就是在c里面不同的编译器得出的结果也是不一样的@!


[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-09-20 22:40
yjw
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-8-11
收藏
得分:0 

对运算的优先级不太了解时建义你用括号括起来,

如:y=(++i)*(++i)

2006-09-21 08:59
yueritian
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-7-26
收藏
得分:0 
括起来也是得6

22岁的我,没有皱纹的我
2006-09-21 09:00
tgllz
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-12-11
收藏
得分:0 

这个用法可不行...


好好学英文!
2006-09-23 15:08
lengxin
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2006-9-14
收藏
得分:0 
c 语言是面向过程,java是面向对象的思想,两者当然不一样了!!!!

2006-09-23 17:48
快速回复:一个简单的JAVA问题!~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015113 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved