03运算符【算术、赋值、关系】、Scanner

Day03

一、运算符

1.算术运算符:

理解:

符号:+、-、*、/、%(求余)、++(自增)、–(自减)

使用:

ps:自增分先后:

		//++a:先自增1,再使用
		int a = 10;
		System.out.println(++a);//11
		System.out.println(a);//11
		
		//b++:先使用,再自增1
		int b = 10;
		System.out.println(b++);//10
		System.out.println(b);//11
特殊点:
		//特殊点1:byte类型做运算,会先向上转型成int类型
				//注意1:向上转型使用最高位补位(补到高位)
				//注意2:向下转型从高位开始舍弃
				byte b1 = 10;
				byte b2 = 20;
				
				//b1 - byte:0000,1010
				//		int:0000,0000,0000,0000,0000,0000,0000,1010
				//b2 - byte:0001,0100
				//		int:0000,0000,0000,0000,0000,0000,0001,0100
				//结果 -  int:0000,0000,0000,0000,0000,0000,0001,1110
				//	 (byte):0001,1110
				
				byte result = (byte)(b1 + b2);
				System.out.println(result);
				
				//特殊点2:short类型做运算,会先向上转型成int类型
				short s1 = 10;
				short s2 = 20;
				//s1 - short:0000,0000,0000,1010
				//       int:0000,0000,0000,0000,0000,0000,0000,1010
				//s2 - short:0000,0000,0001,0100
				//		 int:0000,0000,0000,0000,0000,0000,0001,0100
				//结果 -   int:0000,0000,0000,0000,0000,0000,0001,1110
				//	 (short):0000,0000,0001,1110
				
				short result = (short)(s1 + s2);
				System.out.println(result);
				
				//特殊点3:除了byte和short类型做运算会向上转型成int,其余的类型会按照取值范围大的类型进行转型
				byte b = 10;
				short s = 10;
				int i = 10;
				long l = 10;
				float f = 10;
				double d = 10;
				
				System.out.println(b + b);//结果的类型:int
				System.out.println(s + s);//结果的类型:int
				System.out.println(b + s);//结果的类型:int
				System.out.println(b + i);//结果的类型:int
				System.out.println(b + l);//结果的类型:long
				System.out.println(i + l);//结果的类型:long
				System.out.println(i + f);//结果的类型:float
				System.out.println(l + d);//结果的类型:double
				
				//特殊点4:char类型可以做算数运算,获取的是字符的Unicode码
				char c = 'a';//Unicode - 97
				int j = c+1;
				System.out.println(j);//98
				
				//特殊点5:小数做运算可能损失精度,后续会学习大数值的运算类(BigDecimal),去解决小数运算损失精度问题
				double d1 = 0.5;
				double d2 = 0.4;
				System.out.println(d1 - d2);//0.099999999999998
				
				//特殊点6:++a;和b++;效果都是一样的,分号表示执行语句的结果,不管先加还是后加都给我加
				int a = 10;
				++a;
				System.out.println(a);//11
				
				int b = 10;
				b++;
				System.out.println(b);//11
				
				//特殊点7:
				byte num = 10;
				//底层实现:num = (byte)(num + 1);
				++num;
				System.out.println(num);//11
				
面试题
				//经典面试题一:输出结果为?
					int a = 8;
					int b = (a++)+(++a)+(a*10);
					//a = 10
					//b = 8 + 10 + 10*10
					System.out.println(b);//118
					
				//经典面试题二:输出结果为?
					int i =  0;   
				
					//底层实现:
					//i = (int)(i+1);
					//i = i;
					i = ++i; 
					System.out.println(i);//1
					
				//经典面试题三:输出结果为?
					int i = 0;   
					
					//底层实现:
					//int temp = i;//temp记录了i最初的值 - 0
					//i = (int)(i+1);//i - 1
					//i = temp;//i = 0
					i = i++; 
					System.out.println(i);//0

2.赋值运算符:

理解:

符号:=、+=、-=、*=、/=、%=

赋值规则:
s += 1 s = (short)((s) + (1))
复合赋值 E1 op= E2等价于简单赋值 E1 = (T)((E1) op (E2)),其中T是E1的类型。

注意:
=为赋值号,将赋值号右边的值赋值给左边的变量

使用:

ps:

	int num = 10;
	
	num += 5;//num = (int)(num+5);
面试题:
		//经典面试题一:输出结果为?
			int a,b;//一次性声明多个变量 
			a = b = 100;//将100赋值给变量b,再将变量b赋值给变量a
			System.out.println(a);//100
			System.out.println(b);//100
			
		//经典面试题二:下面的两种写法结果分别是?
/*			short s = 1; 
			s = s+1;//s+1的结果为int类型,如果直接赋值给short类型的变量s就会报错!!!

			short s=1; 
			s += 1;*/

3.关系运算符(比较运算符):

理解:

用于比较两个值之间的关系,返回布尔类型的结果

符号:==、!=、>、>=、<、<=

​ 注意:
​ 1.==判断两个值是否相等
​ 2.!=判断两个值是否不相等
​ 3.!=里的感叹号是英文符号
​ 4.关系运算符的结果都是boolean

使用:

ps

	boolean bool = 10 == 20;
	System.out.println(bool);//false
	
	System.out.println(10 != 20);//true
面试题:
		//经典面试题一:输出结果为?
			int x = 10;
			int y = 10;
			boolean flag = (x == y);
			System.out.println(flag);//true
			//flag = (x = y);//报错 -- boolean不能与其他类型兼容
			System.out.println(flag);
			
		//经典面试题二:输出结果为?
			boolean b1 = true;
			boolean b2 = false;
			boolean b3 = (b1 == b2);
			System.out.println(b3);//false
			boolean b4 = (b1 = b2);
			System.out.println(b4);//false

二、Scanner

理解:

Java给我们提供的专门用于在控制台(黑窗口/cmd)输入数据的类

使用步骤:

​ 1.创建Scanner类的对象 – Scanner scan = new Scanner(System.in);
​ 2.导包 - import java.util.Scanner;
​ 3.调用功能(输入int值、double值、字符串值)

//导包
import java.util.Scanner;

public class Test05{
public static void main(String[] args){

	//创建Scanner类的对象
	//理解:人类 奇男子 = new 人类(System.in);
	Scanner scan = new Scanner(System.in);

	System.out.println("请输入int类型的数据:");
	int i = scan.nextInt();//在控制台输入数据赋值给程序中的变量i

	System.out.println("请输入double类型的数据:");
	double d = scan.nextDouble();

	System.out.println("请输入字符串类型的数据:");
	String str = scan.next();

	System.out.println(i);
	System.out.println(d);
	System.out.println(str);

	scan.close();//关闭资源
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值