运算符,不管是c语言也好,Java也好,运算符都是通用的,是十分基础,并且是必须要了解掌握的,对于任何一门语言来说,运算符的学习是十分必要的。
什么是运算符呢?
其实运算符就像我们数学里面的加减乘除,Java是面向对象的,万物皆对象,运算符其实也是来源于我们现实世界的一种折现,所谓的运算符,其实就是把我们生活中的数学运算符,转换成了计算机能识别的运算符,就比如我是中国人,并且我只会说中文,但是有个小日本鬼子想要和我说话,怎么办呢?这个时候,我就只能借助工具转换成他所能听懂的语言,这样才能做到信息的交流。似乎有点跑题了…
言归正传,运算符,也被称为操作符,用于对数据进行计算和处理,或改变特定对象的值。运算符按照操作数的数目来分类,可以分为一元运算符(如++、- -)、2元运算符(如+、-、<、>、=)和三元运算符(Condition ? expression 1 : expression 2)。
三元运算,也叫条件运算,三目运算。
按照运算符对数据操作的结果分类,可以分为算术运算符、赋值运算符、关系运算符、逻辑运算符、关系运算符和位运算符
代码如下:
package com.trf.basics;
/**
* 运算符:
* 运算符,也被称为操作符,用于对数据进行计算和处理,或改变特定对象的值。
* 运算符按照操作数的数目来分类,可以分为一元运算符(如++、--)、2元运算符(如+、-、<、>、=)和三元运算符(Condition ? expression 1 : expression 2)
*三元运算,也叫条件运算,三目运算
* 按照运算符对数据操作的结果分类,可以分为算术运算符、赋值运算符、关系运算符、逻辑运算符、关系运算符和位运算符
*/
public class Demo07 {
public static void main(String[] args) {
//二元运算符,(+、-、*、/)
int a=10;
int b=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//int类型运算时出现小数会被舍去,必须将其中一个转换double或者是float
System.out.println("================================================");
//模运算(取余)
System.out.println(b%a);
System.out.println("================================================");
//关系运算符
System.out.println(a<b);
System.out.println(a>b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println("================================================");
//一元运算:自增++ 自减--
int d=3;
int h=d++;//执行完这行代码后,先给h赋值,在自增,即h=d=3,d=d+1
//System.out.println(d);
int f=++d;//执行完这行代码前,先自增,再给c赋值
System.out.println(d);//d=5,详解:定义h=d++时,先执行h=d=3,然后才给d自增,即d=d+1=4,后f=++d,d=d+1=(4+1)=5
System.out.println(h);//h=d=3
System.out.println(f);//定义f=++d时,此时先给d自增,即d=d+1=5,然后才给f赋值,即f=d=5
System.out.println("================================================");
/**
* 三元运算符
* x?y:z
* 如果x==true,则结果为y,否则结果为z
*/
int score=80;
String type= score<60 ? "不及格":"及格";
System.out.println(type);
System.out.println("=================================================");
//幂运算 2^3 2*2*2=8
double pow = Math.pow(2, 3);//Math数学运算,pow(2,3)就等于2的3次方,即pow(2,3)=2*2*2=8
System.out.println(pow);
System.out.println("==================================================");
//逻辑运算 与(and)&&,或(or)||,非(取反)
boolean t=true;
boolean r=false;
System.out.println("t && r:"+(t&&r));//逻辑与运算:两个变量都为真,结果才为真true,否则为假false
System.out.println("t || r:"+(t||r));//逻辑或运算:两个变量有一个为真,结果才为真true,否则为假false
System.out.println("!(t && r):"+!(t&&r));//如果是真,就变为假,如果为假,就变为真
System.out.println("====================================================");
//短路运算
int hum=5;
boolean te=(hum<4)&&(hum++<4);//&&运算可以理解为只要出现一个false,程序自动结束运行,返回false(hum=5,当hum<4时,为假false)
System.out.println(te);
System.out.println(hum);//当判定hum<4已经为false时,直接返回false,hum++<4程序不再执行,所以hum=5,如果执行那么hum=hum+1=6
System.out.println("====================================================");
/**
* 位运算:
* A=0011 1100
* B=0000 1101
*
* A&B=0000 1100
* A/B=0011 1101
* A^B=0011 0001
* ~B=1111 0010
*
* <<左移 相当于*2(乘以2)
* >>右移 相当于/2(除以2)
*
*/
System.out.println(2<<3);
System.out.println(16>>2);
}
}