运算符

算数运算符

运算符

对常量和变量进行操作的符号称为运算符

表达式

用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。

  • 常用运算符
  • 算术运算符
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符 三元运算符

案例代码-算数运算符的基本用法

package com.yeyufan_01;
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);
	}
}

案例代码-取余和除法的区别

%:取余运算符得到的是两个相除数据的余数

/:除法运算符得到是两个相除数据的商。

使用场景:%:判断两个数据是否整除

package com.yeyufan_01;
/*
 %:用于获取两个数据相除后的余数
 /:用于获取两个数据相除时的商*
*/
public class OperatorDemo2 {
	public static void main(String[] args) {
		int a;
		int b;
		a = 3;
		b = 5;
		System.out.println(b / a);
		System.out.println(b % a);

	}
}

案例代码-字符和字符串加法操作

package com.yeyufan_01;

/*
 * 整数的加法。
 * 字符参与加法操作。拿字符在计算机中底层存储对应的数据值来参与运算的。
 * 		'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(c2);
		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的操作

++或者--既可以放在变量的后面,也可以放在变量的前面

单独使用的时候,++或者--无论是放在变量的前面还是后面,结果一样

参与操作的时候:

如果++或者--在变量的后面,先拿变量参与操作,后变量做++或者--

如果++或者--在变量的前面,先变量做++或者--,后拿变量参与操作

赋值运算符

赋值运算符分类

package com.yeyufan_02;
/*
 * 赋值运算符:
 * 		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);
	}

}

关系运算符

package com.yeyufan_02;
/*
 * 关系运算符:
 * 		==,!=,>,>=,<,<=
 * 		关系运算符的结果是boolean类型。
 * 
 * 注意:
 * 		千万不要把==写成=
 */

public class OperatorDemo2 {
	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);
	}

}

逻辑运算符

public class Changliang {
		public static void main (String[] args){
			//字符串常量
			System.out.println("HelloWWorld");
			//整数常量
			System.out.println(12);
			System.out.println(-12);
			//小数常量
			System.out.println(12.21);
			//字符常量
			System.out.println('a');
			System.out.println('0');
			//布尔常量
			System.out.println(true);
			System.out.println(false);
		}
}

逻辑运算符&&与&的区别

package com.yeyufan_02;
/*
 * &&和&的结果一样
 * ||和|的结果一样
 * 
 * &&和&的区别:
 * 		&&如果左边是false,右边不执行。
 * 		&无论左边是true还是false,右边都会执行。
 */
public class OperatorDemo4 {
	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);
	}

}

三元运算符

三元运算符概述

A:格式

       (关系表达式)?表达式1:表达式2;

       如果条件为true,运算后的结果是表达式1;

       如果条件为false,运算后的结果是表达式2;

B:示例

       获取两个数中大数。

       int x=3,y=4,z;

       z = (x>y)?x:y; //z变量存储的就是两个数的大数

案例代码

package com.yeyufan_02;
public class OperatorDemo5 {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;

		int c = (a > b) ? a : b;
		System.out.println("c:" + c);
	}

}
package com.yeyufan_02;
/*	
 * 三元运算符的练习
 * 比较两个整数是否相同
 */

public class OperatorDemo6 {
	public static void main(String[] args) {
		// 定义两个int类型的变量
		int a = 10;
		int b = 20;

		boolean flag = (a == b) ? true : false;
		// boolean flag = (a == b);
		System.out.println(flag);
	}

}
package com.yeyufan_02;
/*
 * 获取三个整数中的最大值
 */

public class OperatorDemo7 {
	public static void main(String[] args) {
		int a;
		int b;
		int c;
		a = 1;
		b = 2;
		c = 3;
		int max = a>b?(a>c?a:c):(b>c?b:c);
		System.err.println("MAX:"+max);

	}
}

键盘录入

键盘录入数据的步骤:

A:导包(位置放到class定义的上面)

import java.util.Scanner;

B:创建对象

Scanner sc = new Scanner(System.in);

C:接收数据      

int x = sc.nextInt(); 

案例代码

package com.yeyufan_03;
import java.util.Scanner;

public class ScannerDemo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 创建键盘录入对象
		System.out.println("请输入一个整数:");
		int i = sc.nextInt();
        //	接收数据
		System.out.println("i:" + i);
        //	输出数据

	}
}

案例练习

package com.yeyufan_03;
import java.util.Scanner;
/*键盘录入两个数据,并对这两个数据求和,输出其结果*/
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请依次输入两个数据");
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = a + b;
		System.out.println("和为:" + c);

	}
}

案例练习2

package com.yeyufan_03;
import java.util.Scanner;
/*键盘录入两个数据比较是否相等*/
public class ScannerTest2 {
public static void main(String[] args) {
	Scanner scanner=new Scanner(System.in);
	System.out.println("输入两个数据");
	int a =scanner.nextInt();
	int b =scanner.nextInt();
	int flag = (a==b?1:0);
	if(flag==1)
	{
		System.out.println("两个数据相等");
	}
	else {
		System.out.println("两个数据不相等");
	}

}
}

案例练习3

package com.yeyufan_03;
import java.util.Scanner;
/*键盘录入三个数据获取最大值*/
public class ScannerTest3 {
public static void main(String[] args) {
	Scanner scanner=new Scanner(System.in);
	System.out.println("输入三个数据");
	int a = scanner.nextInt();
	int b = scanner.nextInt();
	int c = scanner.nextInt();
	int max=a>b?(a>c?a:c):(b>c?b:c);
	System.out.println(max);
}
}