文章目录
- 一、运算符
- 1.字符连接符: +
- 2.自增自减运算符:++,--
- 3.赋值运算符
- 4.比较运算符:==、>、<、<=、>=、!=
- 5.逻辑运算符:连接多个boolea值
- 6.三元运算符
一、运算符
1.字符连接符: +
“+”可以连接字符(char)和字符串(String)
//字符的连接
System.out.println("hel"+"lo");//hello
任何数据类型和字符串类型进行连接的时候,结果都会变为字符串
//字符与整型
System.out.println("java"+20);//java20
2.自增自减运算符:++,–
A、在单独使用时,前++和后++没有区别,也就是:++num和num++是完全一样的
B、在和其他操作混合使用时(比如打印输出)
- a、如果是前++,那么变量立刻马上+1,然后拿着结果进行使用【先加后用】
- b、如果是后++,那么首先使用变量原本的值,然后在让变量+1【先用后加】
注意:常量不能使用自增、自减运算符
代码如下(示例):
/**
* 自增自减运算符
*/
public class TestDemo01 {
public static void main(String[] args) {
//单独使用
int a = 1;
int b = a++;
System.out.println(b);// 1
//与打印输出语句混合使用
//前++
int c = 1;
System.out.println(++c);// 2
//后++
int d = 1;
System.out.println(d++);// 1
//错误写法
// 30++;
}
}
3.赋值运算符
A、基本赋值运算符,就是一个等号‘=’
int a = 30
B、复合赋值运算符
- +=(加)
- -=(减)
- *=(乘)
- /=(除)
- %=(余)
注意:
a、只有变量才能进行赋值运算,常量不行
b、复合赋值运算其中隐含了一个强制类型转换
/**
* 赋值运算符
*/
public class TestDemo01 {
public static void main(String[] args) {
byte a = 1;
a += 1;// 2
a -= 1;// 1
//复合赋值运算符包了一个含强制类型转换
// a = a + 1;// 会出现错误
a += 1; // 正常执行
}
}
结果分析:
a = a + 1,会报错是因为 a 是byte类型 ,1是int类型,byte类型 + int类型 = int
(小范围类型加大范围类型,结果是大范围类型的数据类型)
a += 1,可以执行,是因为复合赋值运算符包含了一个强制类型转换,byte + int =(byte)int
4.比较运算符:==、>、<、<=、>=、!=
A、比较运算的结果是一个boolean值,成立就是ture,不成立就是false
B、如过进行多次判断、不能连着写(1<x<3错误写法)
5.逻辑运算符:连接多个boolea值
A、&& 全都是ture,才是ture
B、|| 全都是false,才是false
C、! 取相反
/**
* 逻辑运算符
*/
public class TestDemo01 {
public static void main(String[] args) {
System.out.println(true&&true);//true
System.out.println(true&&false);//false
System.out.println(false&&true);//false
System.out.println(false&&false);//false
System.out.println(true||true);//true
System.out.println(true||false);//true
System.out.println(false||true);//true
System.out.println(false||false);//false
}
}
6.三元运算符
格式:变量名称 = 条件 ? 表达式A :表达B
A、如果条件成立ture,那么将表达式A的值赋值给左侧的变量
B、如果条件不成立false,那么将表达式B的值赋给左侧的变量
a = 1 > 2 ? 1:2; // a = 2
结果分析:如果条件满足,会赋值表达式A,如果不满足,会赋值表达式B
注意:必须保证表达式A、B都符合左侧数据类型的要求
// 错误写法,数据类型不统一
// a = 1 > 2 ? 1.000:2; // a = 2