[Java学习笔记]运算符上

目录

1.如果在计算中有小数参与,计算结果有可能不精确

 2.使用char,byte,short类型的变量进行运算,结果是什么类型的?

 3.字符串后面能直接“+”整数或浮点数嘛,前面呢?

4.赋值运算符:在使用+=,-=,/=,*=,%=时,如果赋值运算符左边与右边的变量类型不一致,会怎么样?

5.不同类型的变量可以用关系运算符进行比较吗? 


1.如果在计算中有小数参与,计算结果有可能不精确

public class demo31 {
    public static void main(String[] args) {
        System.out.println(1.1+1.01);
        System.out.println();
        System.out.println(3.01%2);//取余也能用在浮点数上面
    }
}

运行结果:

 2.使用char,byte,short类型的变量进行运算,结果是什么类型的?

在使用char,byte,short类型的变量中进行运算会把变量类型先转换为int类型,即使进行运算的是两个相同类型的变量

public class demo32 {
    public static void main(String[] args) {
        byte b1=1;
        byte b2=2;
        short s=3;
        char c='嘎';
        //两个byte类型变量运算
        //如果这么写会报错的:byte b3=(b1+b2);
        int b3=b1+b2;
        System.out.println(b3);
        //char,byte,short类型的变量的运算
        int sum=b1+b2+s+c;
        System.out.println(sum);
    }
}

运行结果: 

 3.字符串后面能直接“+”整数或浮点数嘛,前面呢?

都是可以的,当”+“的操作中出现字符串时,这个符号便是字符串连接符,用于字符串的连接,最后的结果全变为字符串

public class demo33 {
    public static void main(String[] args) {
        String s="字符串一号";
        s=s+111;
        s=222+s;
        System.out.println(s);
        String a="字符串二号";
        //从左到右依次计算,a1是先把前面的都加起来再连接,a2是一个一个字符连接
        String a1=1+2+3+a;
        String a2=a+1+2+3;
        System.out.println(a1);
        System.out.println(a2);
    }
}

运行结果:

4.赋值运算符:在使用+=,-=,/=,*=,%=时,如果赋值运算符左边与右边的变量类型不一致,会怎么样?

赋值运算符左边的变量的变量类型不会变:

public class demo34 {
    public static void main(String[] args) {
        byte b=2;
        short s=3;
        char c='嘎';
        int a=1;
        a+=1.5;//相当于:a=(int)(a+1.5);
        //如果这么写是会报错的:b=b+1;
        b+=1;//相当于:b=(byte)(b+1);
        s+=1;//相当于:s=(short)(s+1);
        c+=1;//相当于:c=(char)(c+1);
        System.out.println(a+" "+b+" "+s+" "+c);
        a=(int)(a+1.5);
        b=(byte)(b+1);
        s=(short)(s+1);
        c=(char)(c+1);
        System.out.println(a+" "+b+" "+s+" "+c);
    }
}

运行结果:

5.不同类型的变量可以用关系运算符进行比较吗? 

可以进行比较:(并不是说所有变量都可以用关系运算符比较(比如char与String),以下是一些实验案例)

public class demo35 {
    public static void main(String[] args) {
        byte a1=65;
        short a2=65;
        int a3=65;
        double a4=65.00000000;
        char a5=65;
        System.out.println(a1==a2&&a3==a4&&a4==a5);
    }
}

运行结果为true

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值