Java运算符

运算符
对常量和变量进行操作的符号称为运算符。
表达式:
用运算符把常量或者变量连接起来符号java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。
定义两个int类型的变量a,b,做加法(a + b)
常用运算符:
算术运算符、赋值运算符、关系运算符、逻辑运算符、三元运算符。

一、算术运算符:

1.1 类型: + , - , * , / , % , ++ , - -

代码示例一

public class OperatorDemo1
{
	public static void main(String[] args)
	{
		// 定义两个变量
		int a = 3;
		int b = 4;
		
		System.out.println(a + b);  // 7
		System.out.println(a * b);  // 12
		System.out.println(a / b);  // 0
		
		// 整数相除只能得到整数,要想得到小数,就必须有浮点数参与运算
		System.out.println(3 / 4.0);  // 0.75
		System.out.println(3.0 / 4);  // 0.75
     }
}

1.2 算数运算符取余和除法的区别
%: 取余运算符。得到的是两个相除数据的余数。
/: 除法运算符。得到是两个相除数据的商。
使用场景: %判断两个数据是否整除。

代码案例二

public class OperatorDemo2 {
	public static void main(String[] args) {
		int a = 5;
		int b = 3;

		System.out.println(a / b); // 1
		System.out.println(a % b); // 2
	}
}

1.3 字符和字符串参与加法操作
字符参与运算:
其实是拿该字符对应的数值来操作
‘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.4 算数运算符++和- - 的用法
**++,–运算符:**对变量做加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); // 11
		System.out.println("b:" + b); // 11
	}
}

二、赋值运算符

2.1 赋值运算符分类:
基本的赋值运算符: =
扩展的赋值运算符:+= , -= ,* = , /= , %=
+=: a+=20;相当于a = (a的数据类型)(a + 20);

代码案例五

public class OperatorDemo5 {
	public static void main(String[] args) {
		// 把10赋值给int类型的变量a
		int a = 10;

		// += 把左边和右边的数据进行运算,最后赋值给左边。左边的只能是变量
		a += 10;// 相当于a = a + 10
		System.out.println("a:" + a); // 20
		System.out.println("----------------------");

		short s = 10;
		// s += 20; // 相当于 s = s + 20;
		s = (short) (s + 20);
		System.out.println("s:" + s); // 30
	}
}

三、关系运算符

3.1 基本使用及注意事项

关系运算符包含以下内容:
==,!=,>,>=,<,<=
关系运算符的结果都是boolean型,也就是要么是true,要么是false。
注意事项:
关系运算符 == 不能误写成 = 。

代码案例六

public class OperatorDemo6 {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 10;

		System.out.println(a == b); // false
		System.out.println(a == c); // true
		System.out.println("-----------------");
		System.out.println(a != b); // true
		System.out.println(a != c); // false
		System.out.println("-----------------");
		System.out.println(a > b); // false
		System.out.println(a > c); // false
		System.out.println("-----------------");
		System.out.println(a >= b); // false
		System.out.println(a >= c); // true
		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.1 逻辑运算符概述
类型: & , | , ^ , ! ,&& , ||

注意事项:
a:逻辑运算符一般用于连接boolean类型的表达式或者值。
b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
算术表达式:a + b
比较表达式:a == b(条件表达式)
结论:
&逻辑与:有false则false。
|逻辑或:有true则true。
^逻辑异或:相同为false,不同为true。
!逻辑非:非false则true,非true则false。
特点:偶数个不改变本身。

代码案例七

/*
  逻辑运算符:用于连接关系表达式。
  &,|,^,!
  &&,||
  
  与:&	有false则false
  或:|	有true则true
  异或:^ 相同则false,不同则true。(男女朋友)
  非:!	true则false,false则true
 */

public class OperatorDemo7 {
	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
	}
}

4.2 逻辑运算符&&与&的区别
A:&& 和 & 的区别?
a:最终结果一样。
b:&&具有短路效果。左边是false,右边不执行。
&是无论左边是false还是true,右边都会执行
B: || 和 | 的区别?
a:最终结果一样
b:||具有短路效果.左边是true,右边不执行
|是无论左边是false还是true,右边都会执行

代码案例八

/*
 * &&和&的结果一样
 * ||和|的结果一样
 * 
 * &&和&的区别:
 * 		&&如果左边是false,右边不执行。
 * 		&无论左边是true还是false,右边都会执行。
 */
public class OperatorDemo8 {
	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 三元运算符概述
A:格式
(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
B:示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数

代码案例九

/*
 * 三元运算符:
 * 
 * 格式:
 * 		(关系表达式)?表达式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);
	}
}

5.2 代码案例十(获取三个数中的最大值)

/*
 * 获取三个整数中的最大值
 */
public class OperatorTest1 {
	public static void main(String[] args) {
		// 定义三个int类型的变量
		int a = 10;
		int b = 30;
		int c = 20;

		// 先比较两个整数的大值
		int temp = ((a > b) ? a : b);
		int max = ((temp > c) ? temp : c);
		System.out.println("max:" + max); // 30
	}
}

PS:知识整理(思维导图)

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值