1 运算符
1.1 运算符的概念
- 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
- 在java语言中,运算符有如下的分类:
- ①算术运算符。
- ②赋值运算符。
- ③比较运算符(关系运算符)。
- ④逻辑运算符。
- ⑤位运算符(略)。
- ⑥三元运算符。
1.2 算术运算符
- 示例:
package day03; /**
* 算术运算符
*/
public class ArithmeticTest {
public static void main(String[] args) {
// +
int num1 = 12;
int num2 = 5;
int num3 = 1;
int num4 = 10;
System.out.println("加法:" + (num1 + num2));
// -
System.out.println("减法:" + (num1 - num2));
// *
System.out.println("乘法:" + (num1 * num2));
// /
System.out.println("除法:" + (num1 / num2));
// %
System.out.println("取模:" + (num1 % num2));
// 前++
int num5 = ++num2;
System.out.println("num5:" + num5);
System.out.println("num2:" + num2);
// 前--
int num6 = --num1;
System.out.println("num6:" + num6);
System.out.println("num1:" + num1);
// 后++
int num7 = num3++;
System.out.println("num7:" + num7);
System.out.println("num3:" + num3);
// 后--
int num8 = num4++;
System.out.println("num8:" + num8);
System.out.println("num4:" + num4); }
}
- 示例:随意给出一个三位数的整数,打印显示其各位、十位和百位数的值。
package day03; public class ArithmeticTest2 {
public static void main(String[] args) {
int num = 187;
int ge = num % 10;
int shi = num / 10 % 10;
int bai = num / 100;
System.out.println("各位:" + ge);
System.out.println("十位:" + shi);
System.out.println("百位:" + bai); }
}
1.3 赋值运算符
- “=”
- 当“=”两侧数据类型不一致的时候,可以使用自动类型转换或使用强制类型转换原则进行处理。
- 扩展赋值运算符:+=、-=、*=、/=、%=。
- 扩展赋值运算符不会改变自身的数据类型。
- 示例:
package day03; public class AssignmentTest {
public static void main(String[] args) {
//赋值符号
int i1 = 10;
int j1 = 20; //连续赋值
int i2, j2;
i2 = j2 = 10; int i3 = 5, j3 = 10; //+=
int num1 = 10;
num1 = num1 + 2;
System.out.println(num1); int num2 = 10;
num2 += 2;
System.out.println(num2); //-=
int num3 = 10;
num3 = num3 - 2;
System.out.println(num3); int num4 = 10;
num4 -= 2;
System.out.println(num4); }
}
1.4 比较运算符
- 比较运算符的结果都是boolean类型,要么是true,要么是false。
- 比较运算符“==”不要写成“=”。
- 示例:
package day03; /**
* 比较运算符
* ==
* !=
* >
* <
* >=
* <=
* instanceof
*/
public class ComparisonTest {
public static void main(String[] args) {
int num1 = 10;
int num2 = 5;
System.out.println("==:" + (num1 == num2));
System.out.println("!=:" + (num1 != num2));
System.out.println(">:" + (num1 > num2));
System.out.println("<:" + (num1 < num2));
System.out.println(">=:" + (num1 >= num2));
System.out.println("<=:" + (num1 <= num2)); }
}
1.5 逻辑运算符
- 示例:
package day03; /**
* 逻辑运算符
*/
public class LogicTest {
public static void main(String[] args) {
/**
* 区分 & &&
*/
boolean b1 = false;
int num1 = 10;
if (b1 & (num1++ > 0)) {
System.out.println("&你好啊");
} else {
System.out.println("&我很好嘛");
} System.out.println(num1); boolean b2 = false;
int num2 = 10;
if (b2 && (num2++ > 0)) {
System.out.println("&&你好啊");
} else {
System.out.println("&&我很好嘛");
} System.out.println(num2); }
}
- 示例:
package day03; /**
* 逻辑运算符
*/
public class LogicTest {
public static void main(String[] args) {
/**
* 区分 | ||
*/
boolean b1 = true;
int num1 = 10;
if (b1 | (num1++ > 0)) {
System.out.println("|你好啊");
} else {
System.out.println("|我很好嘛");
} System.out.println(num1); boolean b2 = true;
int num2 = 10;
if (b2 || (num2++ > 0)) {
System.out.println("||你好啊");
} else {
System.out.println("||我很好嘛");
} System.out.println(num2); }
}
1.5 三元运算符
- 格式:
(条件表达式)?表达式1:表达式2;
- 如果条件表达式的结果是true,那么运算后的结果就是表示式1。
- 如果条件表达式的结果是false,那么运算后的结果就是表达式2。
- 三元运算符和if-else的联系和区别?
- ①三元运算符可以简化为if-else语句。
- ②三元运算符要求必须返回一个结果。
- ③if后的代码块可以有多个语句。
- 示例:获取两个数中的最大值。
package day03; /**
* 三元运算符
*/
public class TernaryTest {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20; int result = num1 >= num2 ? num1 : num2;
System.out.println("num1和num2中的最大值是:" + result);
}
}
- 示例:获取三个数中的最大值。
package day03; /**
* 三元运算符
*/
public class TernaryTest {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int num3 = 30; int result = num1 >= num2 ? (num1 >= num3 ? num1 : num3) : (num2 >= num3 ? num2 : num3); System.out.println("num1和num2以及num3中的最大值是:" + result);
}
}