Java基础知识四——标识符
一、运算符的概述
运算符就是用于对常量和变量进行操作的符号
表达式:用运算符连接起来的,符合Java语法的式子。不同的运算符连接的表达式是不同类型的表达式。
运算符的分类:
- 算术运算符:+,-,*,/,%,++,--
- 赋值运算符:=,+=,-=,*=,/=,%=
- 关系运算符:==,!=,>,>=,<,<=
- 逻辑运算符:&,|,!,&&,||
- 三元运算符:(关系表达式)?表达式1:表达式2;
二、基本运算(+,-,*,/)
public class OperatorDemo01 {
public static void main(String[] args) {
//定义变量
int a = 15;
int b = 10;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
//整数相除只能得到整数,要想得到小数,就必须有浮点数参与运算
System.out.println(15.0 / 4);
System.out.println(15 / 4.0);
}
}
三、取余(%)
%:用于获取两个数据相除时的余数
例题:求1234每个位数上的数字
public class OperateDemo02 {
public static void main(String[] args) {
int a=1234 / 1000;
int b=1234 / 100 % 10;
int c=1234 / 10 % 10;
int d=1234 % 10;
System.out.println("1234的千位数是:"+a);
System.out.println("1234的百位数是:"+b);
System.out.println("1234的十位数是:"+c);
System.out.println("1234的个位数是:"+d);
}
}
四、字符加法运算以及字符串加法运算
字符参与加法运算,其实就是拿字符在计算机中存储的数据值来参与运算的
常用的字符:
'A'——65
'a'——97
'0'——48
举例:
public class OperateDemo03 {
public static void main (String [] args){
int x= 'a' + '0';
System.out.println(x);
System.out.println("abc"+"123");
System.out.println(123+"123");
System.out.println(123+"123"+123);
int y = 100;
System.out.println("y="+y);
}
}
字符串参与加法运算,其实做的不是加法运算,二是字符串的拼接。
五、自增自减(++,--)
++,--:自增自减,用于对变量加1或者减1
++,--既可以用在变量的后面,也可以用在变量前面
使用方法:
单独使用的时候:++或者--放在变量的前面或者后面,结果一样。
参与其他操作的时候:
- ++在后面,先拿变量做运算,然后变量再++
- ++在前面,先变量++,然后再拿变量做运算
口诀:++在前,先加1;++在后,后加1。
不管++在前还是在后,结果都加1
举例:
public class OperatorDemo04{
public static void main(String[] args) {
int x=4;
int y=(x++)+(++x)+x*10;
System.out.println("x="+x);
System.out.println("y="+y);
//结果:x=6 y=70
int a=5;
int b = (a++)+(++a)+(++a)-(a--);
System.out.println("a="+a);
System.out.println("b="+b);
//结果:a=7 b=12
}
}
六、赋值运算符(=,+=,-=,*=,/=...)
举例:
public class OperatorDemo05 {
public static void main(String[] args) {
short s = 1;
s += 1;
System.out.println("s="+s);
//结果: s=1
}
}
注意:
扩展的赋值运算符隐含了强制类型转换
例如:
有一个变量a,a+=10,相当于:a=(a的数据类型)(a+10)
七、关系运算符(==,!=,>,>=,<,<=)
关系运算符的结果是boolean类型。
public class OperatorDemo06{
public static void main(String[] args) {
int a = 50;
int b = 70;
int c = 50;
System.out.println(a == b);//结果:false
System.out.println(a > b);//结果:false
System.out.println(b >= c);//结果:true
System.out.println(a != c);//结果:false
System.out.println(c >= b);//结果:false
}
}
八、逻辑运算符(&,|,^,!,&&,||)
&:有false则false
|:有true则true
^:相同则false,不同则true
!:true则false,false则true
举例:
public class OperatorDemo7 {
public static void main(String[] args) {
int a=90;
int b=95;
int c=80;
boolean x=a>90 & b>90;
System.out.println(x);
//结果:false
boolean y= a>90 | b>90;
System.out.println(y);
//结果:true
boolean z = (a<b) ^ (a<c);
System.out.println(z);
//结果:true
boolean m = !(a>b);
System.out.println(m);
//结果:true
}
&&和&的区别:
&&如果左边是false,右边不执行。
&无论左边是true还是false,右边都会执行
也叫短路问题,&&和||的效率比较高,开发中一般使用&&和||。
举例:
public class OperatorDemo08 {
public static void main(String[] args) {
int a = 5;
int b = 10;
boolean x = (a++<5) & (b++>10);
System.out.println(x);
System.out.println("a="+a);
System.out.println("b="+b);
//结果:false a=6 b=11
boolean y = (a++<5) && (b++>10);
System.out.println(y);
System.out.println("a="+a);
System.out.println("b="+b);
//结果:false a=7 b=11
}
}
九、三元运算符
三元运算符的格式:
(关系表达式)?表达式1:表达式2;
执行流程:
1、计算关系表达式的值,看是true还是false
2、如果是true,表达式1就是运算结果
如果是false,表达式2就是运算结果
例题:得到三个数中的最大值
public class OperatorTest09 {
public static void main(String[] args) {
//定义三个变量
int a = 3;
int b = 4;
int c = 2;
//比较三个数中的最大值
int d = (a > b) ? a : b;
int max = (c > d) ? c : d;
System.out.println(max);
}
}