重点掌握本堂课七种运算符的使用以及语法规则
运算符
1.算数运算符
运算符号: + - * / %(取余)
java
package day02;
/**
* 数学运算符:
* 自增自减运算符:
*/
public class OperationDemo01 {
public static void main(String[] args) {
//1.数学运算符
int a = 10;
int b = 5;
int c = a + b;//需要运算并接收结果.
System.out.println(c);//15
System.out.println(a - b);//5
System.out.println(a * b);//50
System.out.println(a / b);//2
System.out.println(5 % 2);//1 (代表 取到 5除以2的余数)!!
//取余操作: 可以进行判断奇偶数
//如果取余操作时,左边数据 小于 右边数据 ,取余结果还是左边数据
System.out.println(1 % 3);//1
System.out.println(2 % 3);//2
System.out.println(3 % 3);//0
//整理代码的快捷键 ctrl + alt + L
}
}
2.自增自减运算符
自增: 在变量自身基础上增加1 ,自增符号 ( ++ )
自减: 在变量自身基础上减少1, 自减符号 ( -- )
作用于变量.
-
单独运算时(只有当前变量被运算),符号在前在后都一样.
-
参与运算时(赋值也算运算),符号在前在后不一样.
- 符号如果在后,先处理其他运算,最后再自增或自减.
- 符号如果在前,先自增或自减, 再处理其他运算.
java
package day02;
/**
* 自增自减运算符:
*/
public class OperationDemo01 {
public static void main(String[] args) {
//自增自减运算符:
//单独运算使用
// int a = 5;
// ++a;//等价于: a = a+1;
// System.out.println(a);//6
// --a;//等价于: a = a-1;
// System.out.println(a);//5
//参与运算时(赋值也算运算):
/**
* 符号如果在后,先处理其他运算,最后再自增或自减.
* 符号如果在前,先自增或自减, 再处理其他运算.
*/
// int a = 5;
// int b = 5;
// int c = a++;
// int d = ++b;
// System.out.println(a);
// System.out.println(b);
// System.out.println(c);
// System.out.println(d);
// int a = 5;
// int b = 5;
// int c = a--;
// int d = --b;
// System.out.println(a);//4
// System.out.println(b);//4
// System.out.println(c);//5
// System.out.println(d);//4
}
}
3.关系运算符
关系运算符指的是:大于(>) 小于(<) 大于等于(>=) 小于等于(<=) 等于(==) 不等于(!=)
关系运算符的运算结果一定是boolean类型,要么是true(成立) 要么是false (不成立)
java
/**
* 关系运算符的演示:
* 逻辑运算符的演示:
*/
public class OperationDemo02 {
public static void main(String[] args) {
//关系运算符的使用演示:
int a = 50;
int b = 40;
boolean r1 = a > b;
System.out.println(r1);//true
System.out.println(a < b); //false
System.out.println(10 <= 10 );//true
System.out.println(10 != 10);//false
System.out.println(5 == 4);//false
}
}
4.逻辑运算符
逻辑运算符的运算结果一定是boolean类型。
Java逻辑运算符分为3种:逻辑与,逻辑或,逻辑非
- 1.逻辑与(并且),符号: &&
java
逻辑与(并且) 现象:在逻辑与的关系中,两个或多个条件之间,只要有一个条件不成立,其结果一定不成立
一假俱假 ----(见 false 即 false )
能毕业吗?
条件一: 课程学完了吗? true false false true
并且 &&
条件二: 考试及格了吗? false true false true
结果: false false false true
- 2.逻辑或(或者),符号: ||
java
逻辑或(或者) 现象:在逻辑或的关系中,两个或多个条件之间,只要有一个条件成立,其结果一定成立
一真俱真 ---- (见 true 即 true )
能结账吗?
条件一: 微信有钱吗? false true true false
或者(||)
条件二: 带够现金吗? true false true false
结果: true true true false
-
3.逻辑非(取反),符号: !
逻辑非(取反) :用于对boolean值进行取反。
true :!true 非真即假 结果 :false false: !false 非假即真 结果: true
java
//逻辑运算符:
// int a = 5;
// int b = 10;
// int c = 5;
// boolean result = a > b && b > c;// false && true -->在并且关系中 见 false即false
// System.out.println(result);//false
// boolean result1 = a > b || b > c;//false || true -->在或者关系中 见 true 即true
// System.out.println(result1);//true
//
// System.out.println(!(c == a));//false
//判断年份是否为闰年:
/**
* 闰年的判定条件:
* 条件1 年份能被4整除 并且 年份不能被100整除
* 或者
* 条件2 年份能被400整除
*/
// Scanner ----扫描器作用: 用来运行时扫描 用户在 显示台中 键入的数据
//使用Scanner时,不需要全拼写完,有提示直接回车即可.
Scanner s = new Scanner(System.in);//创建一个扫描器
System.out.println("请输入要判断的年份,回车即可!");
int year = s.nextInt();// s.nextInt()表示接受控制台中用户输入的int类型的数据 并赋值给 year变量
boolean result2 = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
System.out.println(result2);
-
短路与现象:因为在与的关系中,是多个条件都必须为true 结果才为true.如果执行的条件为false 后面的条件则不再执行!立刻返回false
-
短路或:因为在或的关系中,多个条件只满足其一即可,如果执行的条件为true 后面的条件也不会执行了,立刻返回true
java
int a = 5;
int b = 20;
// System.out.println(a > b && ++b > a);//false 发生了短路与 第一个条件不成立,立刻返回false
// System.out.println(b);//20
//
// System.out.println(a < b && ++b > a);//true 没有发生短路
// System.out.println(b);//21
System.out.println(++a <b || ++b >=21);//true 发生了短路或 第一个条件成立 立刻返回 true
5.扩展赋值运算符
赋值号 = ,赋值的顺序是从右向左赋值.
在变量自身基础上,进行运算并将运算结果赋值给变量自身.
扩展赋值运算符: += -= *= /= %=
java
int a = 10;
a += 10; //等价于 a = a + 10;
System.out.println(a);//20
a -= 10;//等价于 a = a - 10;
System.out.println(a);//10
a *= 2;//等价于 a = a * 2;
System.out.println(a);//20
a /= 5;//等价于 a = a / 5;
System.out.println(a);//4
a %= 2;//等价于 a = a % 2;
System.out.println(a);//0
6.三元运算符
三元运算符语法: 判断的逻辑 ? 逻辑为true返回的位置 : 逻辑为false返回的位置;
java
返回值1 返回值2
//三元运算符: 判断的逻辑 ? 逻辑为true返回的位置 : 逻辑为false返回的位置;
int a = 20;
int b = 40;
// 求 a 和 b 之间的最大值.
int max = a > b ? a : b;
System.out.println(max);//40
//使用多个三元表达式 求 int a = 20; int b = 40; int c = 90; 求这三个变量中最大值。
int a1 = 20;
int b1 = 40;
int c1 = 90;
int temp = a1 > b1 ? a1 : b1;
int max1 = temp > c1 ? temp : c1;
System.out.println(max1);
//使用三元表达式接收数据时,用什么类型来接收,取决于值1与值2的类型,值1和值2必须要一致!
int d = 10;
String r = d % 2 == 0 ? "是偶数!":"不是偶数!";
System.out.println(r);
7.字符串拼接符
字符是char类型,用单引号存储,只能存一个字符。
字符串是String类型,用双引号存储,能存储一串字符。
- 1.使用+号时,如果两边都是数值类型,则进行运算操作!
- 2.使用+号时,如果有一边是String类型的数据,则进行拼接操作,变成一个整体字符串!
java
//字符串 是String类型 用双引号存储内容 ---->引用类型。
String name = "林涛";
int age = 18;
System.out.println("大家好,我叫:" + name + ",我的年龄是:" + age);
System.out.println(age + 10);//28
System.out.println(10 + 10 + "" + 30);//2030
System.out.println("" + 10 + 10 + 30);//101030
System.out.println(10 + 10 + 30 + "");//50