Java中初学者比较爱出错的运算问题

原创 2004年08月09日 20:38:00

其实我开始也是在运算上老爱出错,今天专门把他总结出来,大家可以先不要看答案,自己想想看,应该得到什么样的结果,然后再看看答案,就知道自己错在那里了,希望对大家的学习有所帮助!

public class test
{
?public void go()
?{
??int i=2, j=10;
??byte x=2,y=10;
??System.out.println((++i)*(j--));//
1
??System.out.println("i="+i+"j="+j);//2
??System.out.println(9/2);//
3
??System.out.println(5/10);//
4
??System.out.println(5/10.0);//
5
??System.out.println(x+y);//
6
??System.out.println("hello"+2+3);//7
??System.out.println(2+3+"hello");//
8
??System.out.println("hello"=="hello");//9
??System.out.println(new String("hello")==new String("hello"));//10
??System.out.println(new String("hello").equals(new String("hello")));//?11
??class interTest
??{
???String s="hello";?
??}
??interTest it1=new interTest();
??interTest it2=new interTest();
??it1.s="hello";
??it1.s=it2.s;
??System.out.println(it1.equals(it2));//
12
?}
?public static void main(String args[])
?{
??test t=new test();
??t.go();
?}
}

答案:

  1. 30? 当一元运算符在操作数的前面时,是先进行自加,然后在进行运算,而当运算符在操作数的后面是,是先运算后自加,然后自加的数值参加下次运算。和for循环有点类似
  2. 1=3,j=9??? 同上
  3. 4? 因为9和2全是int类型,所以结果也是int类型,只保留一个整数位4
  4. 0 同理
  5. 0.5?? 一个是int,一个是double,结果也就是double
  6. int 20 虽然2个操作数全是byte,但是结果是int
  7. hello23 前面的操作数为字符串,则系统自动将后续的操作数自动转换为字符串
  8. 5hello? 如果前面的操作数不是字符串,则运算结果由后续操作数决定
  9. true 这2个操作数其实是一个对象
  10. false 这2个对象的值是一样的,但他们是2个不一样的对象
  11. true 使用equals比较的是2个对象的值;
  12. false 并不是所有类的equals()方法都是比较对象内容一样的,string类的equals方法是经过重载(overload)的。而类intertest的方法是从object类继承的,其功能还是比较2个操作数是否是同一对象

Java中的数字基本运算和精度问题

一. 精度   举例:double result = 1.0 - 0.9; 这个结果不用说了吧,都知道了,0.09999999999999998 float和double类型主要是为了科学计算...
  • zhanglu0223
  • zhanglu0223
  • 2012年08月21日 07:32
  • 10092

无优先级运算问题

#include #include using namespace std;const int MAX = 50; int num[MAX]; //输入的数 int flag[MAX]; //...
  • u012319493
  • u012319493
  • 2015年11月30日 21:55
  • 1038

无优先级运算 回溯 Java

问题描述: 给定n个正整数和4个运算符+,-,*,/,且运算符无优先级,如2+3×5=25。对于任意给定的整数m,试设计一个算 法,用以上给出的n个数和4个运算符,产生整数m,且用的运算次数最少。...
  • u011980994
  • u011980994
  • 2013年11月27日 14:24
  • 1810

java 浮点数 运算出错

java 浮点 运算出错
  • wangjun5159
  • wangjun5159
  • 2016年05月10日 13:50
  • 970

无优先级运算问题

#include #include #include #include using namespace std;const int MAX = 50; int num[MAX]; //输入的...
  • u012319493
  • u012319493
  • 2015年12月05日 10:22
  • 588

java重double类型不能用来计算问题

偶然发现的一个问题: 标题     在Java中实现浮点数的精确计算    AYellow(原作) 修改     关键字     Java 浮点数 精确计算    问题的提出: ...
  • u010523770
  • u010523770
  • 2016年09月01日 19:30
  • 732

圈乘运算问题

#include "iostream" #include "algorithm" #include "cmath" #include "fstream" using namespace std; #d...
  • u012319493
  • u012319493
  • 2015年11月20日 11:00
  • 741

浅谈java中的数学运算

码农传奇 2016-10-25 22:23 在实际的java项目中,不可避免地使用到各种运算,比如生成各种报表,数据的汇总等。对于这些问题,大致有2种解决途径,一种是在数据库查询时进行相...
  • u011277123
  • u011277123
  • 2016年10月27日 18:22
  • 994

lintcode刷题 A + B 问题 位运算

A + B 问题 15:00  Start 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 您在真实的面试中是否遇到过这个题?  Yes 样例 如果 ...
  • cjt5047
  • cjt5047
  • 2016年02月18日 15:55
  • 2191

java中Double类型的运算精度问题

public static double add(double v1,double v2) public static double sub(double v1,double v2) public s...
  • yzllz001
  • yzllz001
  • 2017年06月29日 11:40
  • 246
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中初学者比较爱出错的运算问题
举报原因:
原因补充:

(最多只允许输入30个字)