当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。比如参与运算的变量中有整型,有双精度浮点型,有短整型,那么最后的结果类型就是double。
一起学java【6】---运算符
原创
©著作权归作者所有:来自51CTO博客作者黎黎原上草的原创作品,如需转载,请与作者联系,否则将追究法律责任
int a=1;
int b=2;
double c=(double)a/b;
上面的代码中,a和b都是整型的,但是通过(double)a这种转换将a转换成一个匿名的变量,该变量的类型是double。但是要注意:a本身依旧是int类型,而不是double类型,这样,(double)a/b就是double类型除以int类型,结果自然是double类型。
取模运算符:%;其实就是个求余数的问题啦!
取模的结果符号永远与被除数的符号相同。这个规则是很重要的。
例如:int a=5;
int b=-3;
int c=a%b;
则输出的c的值就是2;
而如果int a=-5;
则上例中输出的c的值就是-2;
关系运算符:大于(>)、 小于(<)、等于(==)、不等于(!=)、大于等于(>=)、小于等于(<=);关系运算的结果都是boolean值。
逻辑运算符:重点讲解两个,逻辑运算符本身也返回一个boolean值。
逻辑与:使用&&表示,逻辑与是一个双目运算符(即有两个操作数的运算符);逻辑与只有当两个操作数都为true的时候,结果才为真,其余情况结果均为假。逻辑与表示的是并且的意思。
逻辑或:使用||表示,逻辑或也是一个双目的运算符,逻辑或只有当两个操作数都是false的时候,结果才是false,其余情况结果都是真的。逻辑或表示的是或者的意思,一种选择的意思。
关于逻辑运算符的短路特性(这个很重要!)
1.逻辑与:如果第一个操作数为false,那么结果肯定为false,所以将不会执行逻辑与后面的运算了,即发生了短路;
2、逻辑或:如果第一个操作数为true,那么结果肯定为true,所以将不会执行逻辑或后面的运算了,也就是随之发生了短路。
例如分析下面的代码:
public class Operator2
{
public static void main(String[] args)
{
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int f = 5;
boolean e =(a>b)&&((f=c)<d);
System.out.println(e);
System.out.println(f);
}
}
当我们判断a>b为false时,那么&&后面的操作数就不用执行了,所以这个时候e的值就是false了,而f的值还是最开始定义的那个,因为&&后面的没有执行,所以f=c也就没有被执行,这就是发生了短路,这个很重要,也很容易被忽视掉,这个一定要搞得很清楚才行。
关于变量的自增与自减运算:
a++和++a的说法:
int a=3;
int b = a++;
这个时候输出的b是3;而a是4;
int a=3;
int b = ++a;
这个时候输出的b是4;而a是4;
当++在前的时候是先对变量进行自增,然后再将自增之后的值赋给=左边的变量;
而++在后的时候是先把变量的额值赋给左边的变量,然后再将自增进行。
所以区别是在这里的。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Scala 运算符Scala
-
6 运算符
运算符
运算符 -
(6)Ruby运算符
元编程基础,魔法的开始
特殊字符 元编程 -
Python 教程之运算符(6)—— 运算符重载
运算符重载意味着赋予超出其预定义的操作含义的扩展含义。例如运算符 + 用于添加两个整数以及连接两个字符串和合并两个
后端 Python 运算符 python 运算符重载 -
Java运算符公式 java ~运算符
一、Java中的运算符Java中的运算符分为几大类: 算术运算符:+、-、*、/、%、++、- - 赋值运算符:=、+=、-=、*=、/=等等 位运算符:~、&、|、^ &nbs
Java运算符公式 Java 运算符 逻辑运算符 位运算符