JavaSE第四讲:运算符 Operator

public class Varible
{
	public static void main(String[] args)
	{
		int a = 1;
		int b = 2;
	
		int c = a + b;
		int d = a - b;
		int e = a * b;
		System.out.println(c);
		System.out.println(d);
		System.out.println(e);		
		int f = b/a;
		int g = a/b;
		System.out.println(f);
		System.out.println(g);
	}
}
执行结果:
D:\src>java Varible
3
-1
2
2
0
上面代码中输出的g由于a和b的类型为int型,运算结果也为整型,所以最后结果类型为int型,结果为0。


1. 当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。比如,参与运算的变量中,有整型int,有双精度浮点型double,有短整型short,那么最后的结果类型就是double。

		double a = 1;
		int b = 2;
		int c = a/b;
		System.out.println(c);
上面代码执行结果错误:
D:\src>javac Varible.java
Varible.java:7: 错误: 可能损失精度
                int c = a/b;
                         ^
  需要: int
  找到:    double
1 个错误

原因是a是double类型,b是int类型,a与b运算结果取表示范围最大的double类型,但是赋值给c,c为int类型故程序出现错误。

以上代码做如下修改则可以执行

		double a = 1;
		int b = 2;
		double c = a/b;
		System.out.println(c);
输出结果为:
D:\src>java Varible
0.5

再修改以上代码:

		int a = 1;
		int b = 2;
		double c = a/b;
		System.out.println(c);
输出结果为:
D:\src>java Varible
0.0

继续修改以上代码:

		int a = 1;
		int b = 2;
		double c = (double)a/b;
		System.out.println(c);
输出结果为:
D:\src>java Varible
0.5

上面的代码中,a与b都是整型,但是通过(double)a这种转换将a转换为一个匿名的变量,该变量的类型是double,但是要注意:a本身依旧是int类型,而不是double类型,这样,(double)a/b就是double类型除以int类型,结果自然是double类型。


3. 取模运算符:使用%表示。

		int a = 5;
		int b = 3;
		int c = a%b;
		System.out.println(c);
输出结果为:

D:\src>java Varible
2

上面代码的运行结果是2,因为5除以3结果是1余2。


4. 取模的规律:取模的结果符号永远与被除数的符号相同

		int a = 5;
		int b = -3;
		int c = a%b;
		System.out.println(c);
输出结果

D:\src>java Varible
2

被除数是5,那么取模的结果是2

		int a = -5;
		int b = 3;
		int c = a%b;
		System.out.println(c);
输出结果:
D:\src>java Varible
-2

被除数是-5,那么取模的结果是-2。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值