1.算术运算符
*运算符
*对常量和变量进行操作的符号成为运算符
*表达式
*用运算符把常量或变量连接起来符合Java语法的式子就可以成为表达式
*不同运算符连接的式子体现的是不同类型的表达式
*常用运算符
*算术运算符
*赋值运算符
*关系运算符
*逻辑运算符
*三元运算符
*算术运算符概述
*什么是算术运算符
*就是对常量或变量进行操作的符号
*算术运算符有哪些
* +,-,*,/,%,++,--
*案例
package com.text_01;
/*
* 运算符:对常量和变量进行操作的符号
* 表达式:用运算符连接起来的符合java语法的式子。不同类型的运算符连接起来的式子是不同的表达式。
* 举例:定义两个int类型的变量a,b,
* a + b
*
* 运算符分类:
* 算术运算符,赋值运算符,关系运算符,逻辑运算符,三元运算符。
*
* 算术运算符:
* +,-,*,/的基本使用
*/
public class OperatorDemo {
public static void main(String[] args) {
// 定义两个变量
int a = 3;
int b = 4;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
// 整数相除只能得到整数,要想得到小数,就必须有浮点数参与运算
System.out.println(3 / 4.0);
System.out.println(3.0 / 4);
}
}
*算术运算符取余和除法的区别
* %:取余运算符,得到连个数相除的余数.
* /:除法运算符,得到两个相除数据的商.
*使用场景:%可以用来判断数据是否整除.
*案例
public class OperatorDemo2 {
public static void main(String[] args) {
int a = 5;
int b = 3;
System.out.println(a / b);
System.out.println(a % b);
}
}
*字符和字符串参与加法操作
*字符参与运算
*其实是拿该字符对应的数值来操作
* 'a'-----97
* 'A'-----65
* '0'-----48
*字符串参与运算
*做的是字符串的拼接
*字符串和其他类型的数据做加法时,结果为字符串类型.
*案例
package com.text_02;
/*
* 整数的加法。
* 字符参与加法操作。拿字符在计算机中底层存储对应的数据值来参与运算的。
* '0' 48
* 'a' 97
* 'A' 65
* 字符串参与加法操作。
* 这里的+其实不是加法,而是字符串连接符。
*/
public class OperatorDemo3 {
public static void main(String[] args) {
// 整数加法
int a = 10;
int b = 20;
System.out.println(a + b);
System.out.println("------------------");
// 字符参与加法操作
char c = '0';
char c2 = 'a';
System.out.println(a + c);
System.out.println(a + c2);
System.out.println("------------------");
// 字符串参与加法操作
System.out.println("hello" + a);
System.out.println("hello" + a + b); // "hello"+10,然后再和b进行拼接
System.out.println(a + b + "hello");
}
}
*算术运算符++和--的用法
*++,--运算符:对变量做加1或者减1的操作.
*++或者--既可以放在变量的后面也可以放在变量的前面(单独使用的时候,无论在前还是在后,结果都是一样的)
*如果++或者--在变量的后面,先操作变量后++后者--
*如果在前面就是先进行运算后操作
*案例
public class OperatorDemo4 {
public static void main(String[] args) {
int a = 10;
System.out.println("a:" + a);
// 单独使用
// a++;
// ++a;
// System.out.println("a:" + a);
// 参与操作使用
// int b = a++;
int b = ++a;
System.out.println("a:" + a);
System.out.println("b:" + b);
}
}
2.赋值运算符
*赋值运算符分类
*基本的赋值运算符: =
*扩展的赋值运算符: +=,-=,*=,/=,%=
*+=: a+=20;相当于a=(a的数据类型)(a+20);
*案例
package com.text;
/*
* 赋值运算符:
* A:基本 =
* B:扩展 +=,-=,*=,...
*
* +=:
* a+=20;
* 相当于
* a = (a的数据类型)(a + 20);
*/
public class OperatorDemo {
public static void main(String[] args) {
// 把10赋值给int类型的变量a
int a = 10;
// += 把左边和右边的数据进行运算,最后赋值给左边。左边的只能是变量
a += 10;// 相当于a = a + 10
System.out.println("a:" + a);
System.out.println("----------------------");
short s = 10;
// s += 20; // 相当于 s = s + 20;
s = (short) (s + 20);
System.out.println("s:" + s);
}
}
3.关系运算符
*基本使用及注意事项
*关系运算符包含一下内容
* ==,!=,>,>=,<,<=
*关系运算符的结果都是Boolean类型,也就是true或false
*案例
package com.text;
/*
* 关系运算符:
* ==,!=,>,>=,<,<=
* 关系运算符的结果是boolean类型。
*
* 注意:
* 千万不要把==写成=
*/
public class OperatorDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
System.out.println(a == b);
System.out.println(a == c);
System.out.println("-----------------");
System.out.println(a != b);
System.out.println(a != c);
System.out.println("-----------------");
System.out.println(a > b);
System.out.println(a > c);
System.out.println("-----------------");
System.out.println(a >= b);
System.out.println(a >= c);
System.out.println("-----------------");
int x = 3;
int y = 4;
// System.out.println(x == y);
// System.out.println(x = y);// 把y赋值给x,把x的值输出
boolean bb = (x == y);
// 报错
// boolean cc = (x = y);
int cc = (x = y);
}
}
4.逻辑运算符
*逻辑运算符概述
*逻辑运算符有哪些
* &,|,!,^,&&,||
*逻辑运算符一般用于连接Boolean类型的表达式或值
*&逻辑与:一方为false则都为false
*|逻辑或:一方为true则都为true
*^逻辑异或:相同的对比结果为false.不同为true
*!逻辑非:取反值
*案例
package com.text_01;
/*
* 逻辑运算符:用于连接关系表达式。
* &,|,^,!
* &&,||
*
* 与:& 有false则false
* 或:| 有true则true
* 异或:^ 相同则false,不同则true。(男女朋友)
* 非:! true则false,false则true
*/
public class OperatorDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
System.out.println((a > b) & (a > c));// false & false
System.out.println((a < b) & (a > c)); // true & false
System.out.println((a > b) & (a < c)); // false & true
System.out.println((a < b) & (a < c)); // true & true
System.out.println("---------------");
System.out.println((a > b) | (a > c));// false | false
System.out.println((a < b) | (a > c)); // true | false
System.out.println((a > b) | (a < c)); // false | true
System.out.println((a < b) | (a < c)); // true | true
System.out.println("---------------");
System.out.println((a > b) ^ (a > c));// false ^ false
System.out.println((a < b) ^ (a > c)); // true ^ false
System.out.println((a > b) ^ (a < c)); // false ^ true
System.out.println((a < b) ^ (a < c)); // true ^ true
System.out.println("---------------");
System.out.println((a > b)); // false
System.out.println(!(a > b)); // !false
System.out.println(!!(a > b)); // !!false
}
}
*&&和&的区别
*最终结果一样
*&&具有短路效果,左边为false是右边不执行
*||和|的区别
*最终结果一样
*||具有短路效果,左边是true右边不执行
*案例
package com.text;
/*
* &&和&的结果一样
* ||和|的结果一样
*
* &&和&的区别:
* &&如果左边是false,右边不执行。
* &无论左边是true还是false,右边都会执行。
*/
public class OperatorDemo2 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
System.out.println((a > b) && (a > c));// false && false
System.out.println((a < b) && (a > c)); // true && false
System.out.println((a > b) && (a < c)); // false && true
System.out.println((a < b) && (a < c)); // true && true
System.out.println("---------------");
System.out.println((a > b) || (a > c));// false || false
System.out.println((a < b) || (a > c)); // true || false
System.out.println((a > b) || (a < c)); // false || true
System.out.println((a < b) || (a < c)); // true || true
System.out.println("---------------");
int x = 3;
int y = 4;
// System.out.println((x++ > 4) & (y++ > 5)); // false & false
System.out.println((x++ > 4) && (y++ > 5)); // false && false
System.out.println("x:" + x);
System.out.println("y:" + y);
}
}
5.三元运算符
*三元运算符概述
*格式:(关系表达式)?表达式1:表达式2;
*如果条件为true,执行表达式1,反之执行表达式2
*案例
package com.itheima_05;
/*
* 三元运算符:
*
* 格式:
* (关系表达式)?表达式1:表达式2;
* 执行流程:
* A:计算关系表达式的值,看是true还是false
* B:如果是true,表达式1就是运算结果
* 如果是false,表达式2就是运算结果
*/
public class OperatorDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = (a > b) ? a : b;
System.out.println("c:" + c);
}
}