运算符

17-运算符-赋值运算符

赋值运算符”=”不要理解为数学上面的等号,功能是将右边的操作结果赋给左边操作数。

变量类型 变量名 = 所赋的值;

左边必须是一个变量,右边可以是任何数值或者表达式(变量、常量或者有效表达式)。

int a = 12;
float f = 12.3f * 12;

练一练

  1. 定义三个变量,其中两个的和赋给第三个变量。
int a = 12, b = 23;
int c = a + b;
  1. 定义三个变量,其中两个是另外一个和一个字面数的和,然后输出结果。使用连等号 a = b = 2;
int a = 12;
int b, c;
b = c = a + 2;

18-运算符-算术运算符

算术运算符包括:

运算符含义
+加
–减
*乘
/除
%求余

他们都是二元运算。当然 +、- 也可以表示正负号。

除法运算中0不能作为除数,否则会报异常:

Exception in thread "main" java.lang.ArithmeticException: / by zero
at cn.bamn.Image.main(Image.java:11)Code language: PHP (php)
int a = 1, b = 0;
int c = a + b;
int d = a - b;
int e = a * b;
int f = a / b; //两个整数相除 结果会去掉小数部分 只保留整数部分
int g = a % b;
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);Code language: JavaScript (javascript)

练一练

创建两个变量,一个float,一个int,然后分别输出他们的和、差、商、积和余。

float f = 12.3f;
int i = 12;
//int a = f + i; //一个float类型一个是int类型 他们的和是float类型 i会自动转换为float类型再和f相加
float a = f + i;Code language: JavaScript (javascript)

19-自增和自减运算符

他们是单目运算符,可以用在操作元之前或者之后。操作元必须是整数或者浮点数变量。

运算符放在前或者后是有区别的:

  • ++a 或 --a:在使用a变量之前,先进行+1或者-1
  • a++ 或 a--:先使用a,再将a的值+1或者-1
int a = 10;
System.out.println(a++); //++在后面 则先让a进行操作 再+1 a在这里就是传给println输出
//上面这一句代码相当于 System.out.println(a); a = a + 1;
System.out.println(a);Code language: JavaScript (javascript)
int a = 10;
System.out.println(++a); //++在前 则先让a进行+1 再让a进行下一步操作 a在这里就是传给println输出
//上面这一句代码相当于 a = a + 1; System.out.println(a);
System.out.println(a);Code language: JavaScript (javascript)

练一练

说说下面的结果是多少:

int a = 2;
int b = a++ + 3 - --a; // 5 - --a ==》5 - 2 ==》 3
System.out.println(b);Code language: JavaScript (javascript)

20-比较运算符

属于二元运算符,用于变量、常量或者字面值等之间的比较。比较的结果是boolean类型。当条件成立的时候结果是true,否则是false。

public static void main(String[] args) {
	int a = 13, b = 2;
	System.out.println(a > b);
	System.out.println(a < b);
	System.out.println(a <= b);
	System.out.println(a >= b);
	System.out.println(a == b); //等于判断是用 双等号
	System.out.println(a != b);
}Code language: JavaScript (javascript)

练一练

定义两个int变量,分别赋值,然后分别比较使用上面的比较符号,输出他们的比较结果。


21-逻辑运算符

逻辑包含:

  • 逻辑与:&& 或者 &
  • 逻辑或:|| 或者 |
  • 逻辑非:!

计算的结果是布尔类型。

在java中 && 和 & 都表示与,区别是 && 如果遇到第一个是false了,则不再进行第二个判断了,就算第二个出错了。所以 && 通常称为短路与,而 & 成为非短路与。

boolean b1 = true, b2 = false;
System.out.println(b1 && b2);
System.out.println(b1 || b2);
System.out.println(!b1);Code language: JavaScript (javascript)
boolean b1 = true, b2 = false;
System.out.println(b1 & b2);
System.out.println(b1 | b2);
System.out.println(!b1);Code language: JavaScript (javascript)

短路与的特点

boolean b1 = false, b2 = false;
int a = 0;
System.out.println(b1 && 2 / a > 2); //如果是&&短路与 则一旦b1为false 那么不再看b2 就算b2出错了Code language: JavaScript (javascript)

如果换成非短路与:

System.out.println(b1 & 2 / a > 2);
//Exception in thread "main" java.lang.ArithmeticException: / by zeroCode language: JavaScript (javascript)

短路或的特点

boolean b1 = true, b2 = false;
int a = 0;
System.out.println(b1 || 2 / a > 2); //如果b1为true 则不会再看后面的Code language: JavaScript (javascript)

换成非短路或则还是会报错:

System.out.println(b1 | 2 / a > 2);

练一练

尝试进行 && 和 & 的区别,|| 和 | 的区别。第二个表达式用 /0 的错误做法。


22-三元运算符

Java唯一一个三目运算符。

boolean b = 12 > 5 ? true : false;Code language: JavaScript (javascript)

三目运算符其实可以使用 if else 的写法。冒号前后的这个值的类型必须一样。

boolean b = 12 > 3 ? true : false; //如果12>3结果是true 则使用:前面的值true 否则则后面false
int a = (true || false) ? 1 : 3;
float f = 2 < 3 ? 2.3f * 3.4f : 12.3f;Code language: JavaScript (javascript)

练一练

使用三目运算符计算两个数最大的值赋给第三个数:

int a = 234, b = 3243;
int max = a > b ? a : b;

23-运算符的优先级

当有多个运算符一起的式子的时候,先算哪个后算哪个,这里就有运算符的优先级的问题。总体来说:

增量或减量运算符 > 算术运算符 > 比较运算 > 逻辑运算 > 赋值运算

练习一下

判断一个数字的奇偶性,使用三目运算,使用 System.in 读入一个数。

package cn.bamn;

import java.util.Scanner;

public class Image {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int input = scan.nextInt();
		String res = input % 2 == 0 ? "是偶数" : "是奇数";
		System.out.println(res);
	}

}Code language: JavaScript (javascript)
Previous:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注