3.运算符

一.算术运算符
package chapter02;

public class Operator {

	public static void main(String[] args) {
		//++,--自加自减
		int a=10;
		int b=20;
		int sum=a+(++b);
		System.out.println("sum="+sum);
		System.out.println("b="+b);
		//除法:如果除数和被除数都为整数,那么结果也为整数;如果操作数中有小数,那么结果就是一个小数
		System.out.println(10.0/3);
		//取模运算 %,结果的正负只取决于被除数
		System.out.println(10%3);
        System.out.println(10%3);//1
		System.out.println(10%-3);//1
		System.out.println(-10%3);//-1
        int a=10;
		int b=a++;
		int c=10;
		int d=++c;
		System.out.println(a);//11
		System.out.println(b);//10
		System.out.println(c);//11
		System.out.println(d);//11
        
				

	}

}
package chap3;

public class ArithmeticOperatorExercise02 {

	public static void main(String[] args) {
		int days=59;
		int weeks=days/7;
		int day=days%7;
		
		System.out.print("一共"+weeks+"个星期");
		System.out.println("零"+day+"天");

	}

}

易错易忘:

package chap1;

public class ArithmeticOperatorExercise01 {

	public static void main(String[] args) {
		int i = 1;
		i=i++;
		System.out.println(i);//1

	}

}
package chap1;

public class ArithmeticOperatorExercise01 {

	public static void main(String[] args) {
		int i = 1;
		i=++i;
		System.out.println(i);//2

	}

}
二.逻辑运算符

·介绍:

用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值

·逻辑运算符一览

√分为两组学习

1)短路与 &&,短路或||,取反 !

2)逻辑与&,逻辑或 | ,^逻辑异或

√说明逻辑运算规则:

1.a&b:&叫逻辑与:规则:当a和b同时为true,则结果为true,否则为false

2.a&&b:&& 叫做短路与:规则:当a和b同时为true,则结果为true,否则为false

3.a | b: | 叫逻辑或, 规则:当a和b,有一个为true,则结果为true,否则为false

4.a || b:|| 叫短路或,规则: 当 a 和b,有一个为true,则结果为true,否则为false

5.!a:叫做取反,或者非运算。当a为true,则结果为false,当a为false时,结果为true

6.a^b:叫逻辑异或,当a和b不同时,则结果为true,否则为false

·短路与逻辑与

·&&和&基本规则

名称

语法

特点

短路与&&

条件1&&条件2

两个条件都为true,结果为true

逻辑与&

条件1&条件2

两个条件都为true,结果为true

·&&和&使用区别

1.&&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高

2.&逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低

3.开发中,我们使用的基本是短路与&&,效率高

·短路或与逻辑或

·|| 和 | 基本规则

名称

语法

特点

短路或||

条件1 || 条件2

两个条件只要有一个成立,结果为true

逻辑或|

条件1 | 条件2

只要有一个条件成立,结果true

·|| 和 | 使用区别

1)||短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高

2)| 逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低

3)开发中,我们基本使用 ||

·!取反基本规则

名称

语法

特点

!非(取反)

!条件

如果条件本身成立,结果为false,否则为true

·^

a^b:叫逻辑异或时,当a和b不同时,则结果为true,否则为false

package chapter02;

public class Operator2 {

	public static void main(String[] args) {
		//逻辑运算符可以针对结果为布尔值的表达式进行运算
		//与运算:&,&&
		int x=0,y=0,z=0;
		boolean a,b;
		a=x>0 & y++>1;
		System.out.println("与运算"+a);
		System.out.println("y="+y);
		//短路与
		b=x>0 && z++>1;
		System.out.println("与运算"+b);
		System.out.println("z="+z);
		//或运算:|、||
		x=y=z=10;
		a=x>0 | y++>1;
		System.out.println("或运算"+a);
		System.out.println("y=" + y );

		b=x>0||z++>1;
		System.out.println("或运算"+b);
		System.out.println("z="+z);
		//异或运算:^,如果两个操作数值都为true或者为false,则结果为false;
		//如果两个操作数一个是true,另一个是false,则结果为true.
		System.out.println(true^true);
		System.out.println(false^false);
		System.out.println(false^true);
	}

}
三、赋值运算符

·赋值运算符的分类

√基本赋值运算符 =

√符合赋值运算符

+=,-=,*=,/=,%=

赋值运算符特点

1)运算顺序从右往左 int num = a+b+c;

2)赋值运算符的左边,只能是变量,右边 可以是变量、表达式、常量值

int num=20;int num2=78*34-10;int num3 = a;

3)复合赋值运算符等价与下面的效果

a+=3;等价于a=a+3;

4)复合赋值运算符会进行类型转换

byte b =2; b+=3; b++;

四、三元运算符

·基本语法

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

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

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

口诀:一真大师

package mypackage;
import java.util.*;
public class Homework03 {

	public static void main(String[] args) {
		System.out.print("请输入一个整数:");
		Scanner in=new Scanner(System.in);
		int a=in.nextInt();
		System.out.print("请输入第二个整数:");
		int b=in.nextInt();
		System.out.print("请输入第三个整数:");
		int c=in.nextInt();
		int max=a>b&&a>c?a: b>a&&b>c ?b: c>a&&c>b? c:a;
		System.out.println(max);
		

	}

}

易错

package chap1;

public class TernaryOperator {

	public static void main(String[] args) {
		int a = 10;
		int b =99;
		int result = a > b ? a++ : b--;
		System.out.println("result="+result);//99
    
	}

}
package chap1;

public class TernaryOperator {

	public static void main(String[] args) {
		int a = 10;
		int b =99;
		int result = a > b ? a++ : --b;
		System.out.println("result="+result);//98

	}

}
package chap1;

public class TernaryOperator {

	public static void main(String[] args) {
		int a = 10;
		int b =99;
		int result = a < b ? a++ : b--;
		System.out.println("result="+result);//10
        System.out.println("a="+a);//11
        System.out.println("b="+b);//99

	}

}

·使用细节

1.表达式1和表达式2要为可以赋给接受变量的类型(或可以自动转换)

2.三元运算符可以转成if--else语句

int res = a>b? a++:--b;

if(a>b) res =a++;

else res=--b;

五.关系运算符(比较运算符)

·介绍:

1.关系运算符的结果都是boolean型,也就是要么是true,要么是false

2.关系表达式 经常用在 if结构的条件中或循环结构的条件中

·关系运算符一览

package chap3;

public class RelationalOperator {

	public static void main(String[] args) {
		int a=9;
		int b=8;
		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);
		boolean flag=a>b;
		System.out.println(flag);

	}

}

·细节说明

1)关系运算符的结果都是boolean型,也就是要么是true,要么是false.

2)关系运算符组成的表达式,我们称为关系表达式. a>b

3)比较运算符"=="不能误写成"="

六.运算符优先级

1.运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如上表,上一行运算符总优于下一行。

2.只有单目运算符、赋值运算符是从右向左运算的

梳理小结:

1)(),{}等

2)单目运行 ++ --

3)算术运算符

4)位移运算符

5)比较运算符

6)逻辑运算符

7)三元运算符

8)赋值运算符

·标识符的命名规则和规范

1.Java对各种变量、方法和类等命名时使用的字符序列称为标识符

2.凡是自己可以起名字的地方都叫标识符 int num1=90;

·标识符的命名规则(必须遵循)

1.由26个英文字母大小写,0-9,_或$组成

2.数字不可以开头。 int 3ab =1;

3.不可以使用关键字和保留字,但能包含关键字和保留字.

4.Java中严格区分大小写,长度无限制。int totalNum=10;int n = 90;

5.标识符不能包含空格。int a b =90;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值