java学习--第三天

15 篇文章 0 订阅
15 篇文章 0 订阅

第三天内容主要是运算符相关的笔记,跟下来发现需要消化的内容还是有一部分,而且需要跟一下老韩的练习(基本上出现的代码都会跟着敲一遍),推荐各位在学习的时候也跟着敲一遍,不要光看写好的代码简单就完事了,开发还是熟练度很关键;而且有的内容你可能不一定真的会了,也不要纯照抄,大概看一遍思路再试着自己写,0代码基础的同学可以先照着敲一遍,后面或者第二遍的时候尝试自己敲。

立的30天完成的flag可能有点不行了,毕竟内容讲的比较细,而且博主平日也有其他的事情要做,不光是看课,java学习只是主线之一;不过尽量完成。

附原视频地址:


Java基础-运算符

运算符简介

运算符分类
  1. 算术运算符
  2. 赋值运算符
  3. 关系运算符(比较运算符)
  4. 逻辑运算符
  5. 位运算符
  6. 三元运算符

算数运算符

需要注意的情况

public class ArithmeticOperator{
	public static void main(String[] args){
		System.out.println(10 / 4);
		System.out.println(10.0 / 4); 
		//正常需要让参与运算时的数就是高精度
		
		double d = 10 / 4;
		System.out.println(d);
		//这样也不行,已经运算完毕再赋值的,只能让结果是高精度
		
	} 
}
>2
>2.5
>2.0

取模

取模的本质要看一个公式 a % b = a - a / b * b

public class ArithmeticOperator{
	public static void main(String[] args){
		
		System.out.println(10 % 3);
		System.out.println(-10 / 3);
		System.out.println(10 / -3); //注意公式		
		
	} 
}
>1
>-1
>1

自增

public class ArithmeticOperator{
	public static void main(String[] args){
		
		int i = 10;
		//i++;
		++i;
		System.out.println("i=" + i);//独立语句使用时,i都是11
		
		int j = 10;
		int k = ++j;//等价于 j=j+1;k=j  先自增 再赋值
		System.out.println("j=" + j + "k" + k);// 11 11
		
		int j1 = 10;
		int k1 = j1++;//等价于 k1=j1;j1=j1+1  先赋值 再自增
		System.out.println("j1=" + j1 + "k1" + k1);// 11 10
		
	} 
}

关系运算符

逻辑运算符

短路与(&&)和逻辑与(&)的区别

共同点,作逻辑判断的话:a为true,b为true,则结果是true

不同点,在于表达式的执行

public class LogicOperator {
	public static void main(String[] args){
		int a = 4;
		int b = 9;
		if(a < 1 && ++b < 50){  
		//短路与,&&左边为false那么后面的就不用看了,不执行,但判断效率高
			System.out.println("its ok");
		}System.out.println("a=" + a + "b=" + b); //4 9
		
		int c = 4;
		int d = 9;
		if(c < 1 & ++d < 50){
		//逻辑与,&左边为false后面的仍然判断(执行)
			System.out.println("its ok");
		}System.out.println("c=" + c + "d=" + d); //4 10
	}
}

短路或(||)和逻辑或(|)的区别

共同点,作逻辑判断的话:条件中有一个成立,则结果是true,否则为false

不同点也是执行上的

public class LogicOperator {
	public static void main(String[] args){
		int a = 4;
		int b = 9;
		if(a > 1 || ++b < 3){  
		//短路或,||左边为true认定表达式为true,后面的就不用看了,不执行,但判断效率高
			System.out.println("its ok");
		}System.out.println("a=" + a + "b=" + b); //4 9
		
		int c = 4;
		int d = 9;
		if(c < 1 | ++d < 3){
		//逻辑或,&左边为true后面的仍然进行判断(执行)
			System.out.println("its ok");
		}System.out.println("c=" + c + "d=" + d); //4 10
	}
}

取反非(!)
public class LogicOperator {
	public static void main(String[] args){
		System.out.println(60 > 20);
		System.out.println(!(60 > 20));
	}
}
>true
>false

异或(^)
public class LogicOperator {
	public static void main(String[] args){
		System.out.println((true) ^ (false));
		System.out.println((true) ^ (true));
		System.out.println((false) ^ (false));
	}
}
>true
>false
>false

赋值运算符

分类:

  1. 基本赋值运算符:int a = 10

  2. 复合运算符:+= -= *= /= %=等

    例如:a += b 《==》 a = a + b

特点:

  1. 运算顺序从右往左
  2. 赋值运算符的左边 只能是变量,右边可以是变量、表达式、常量值
  3. 复合赋值运算符会进行类型转换。
public class AssignOperator {
	public static void main(String[] args){
		byte b = 2;
		b += 3;//等价于b=(byte)(b+3);
		b++;//等价于b=(byte)(b+1);
		
	}
}

三元运算符

基本语法:

条件表达式?表达式1:表达式2;

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

示例代码:

public class TernaryOperator {
	public static void main(String[] args){
		int a = 10;
		int b = 99;
		
		int result = a > b ? a++ : b--;
		//易错:这时候result的b是99,非98;先赋值,才--
		System.out.println("result=" + result);
		System.out.println("a=" + a);
		System.out.println("b=" + b);
		//但是b的值要注意改变了,与result要区分开
 	}
}
>result=99
>a=10
>b=98

Detail:

1、表达式1和表达式2要为可以赋给接收变量的类型(或可以自动转换) --也就是注意类型转换的问题

public class TernaryOperator {
	public static void main(String[] args){
		int a = 10;
		int b = 99;
		
		//不可行 报错int c = a > b ? 1.1:3.4;
		int c = a > b ? (int)1.1:(int)3.4;
 	}
}

2、三元运算符本质是一个if--else

运算符优先级

从上到下优先级依次降低,不用背,用多就知道了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值