5、运算符

1、本次的预计讲解的知识

1、运算概板;

2、逻辑运算符;

3、三目运算符;

4、位运算符。

2、具体内容

在之前使用过这样的语法:

    int num = 10 ;

此类的方式称为赋值运算符,=”是实现赋值运算使用的。

那么进行数学计算时所使用的四则运算也属于运算符的定义范畴。

但是对于所有的运算符,千万要记住,不要编写过于复杂的操作。

范例:观察一种神奇的代码

public class TextDemo {

public static void main(String[] args) {

int numA = 10 ;

int numB = 20 ;

int result = numA * 2 - --numB * numA++ + numB -numA-- + numB;

System.out.println(result);

}

}

以后可以写的代码,一定要写出来1 + 1 = 2 ”的代码。如果真的是复杂的代码,建议使用“()”改变优先级。

在开发之中常用的几类运算符:四则运算、逻辑运算、三目运算、位运算。

对于四则运算基本组成就是:+-*/%

范例:四则运算

public class TextDemo {

public static void main(String[] args) {

int numA = 10 ;

int numB = 20 ;

System.out.println("加法计算:" + (numA + numB));

System.out.println("减法计算:" + (numA - numB));

System.out.println("乘法计算:" + (numA * numB));

System.out.println("除法计算:" + (numA / (double)numB));

}

}

范例:求模计算

public class TextDemo {

public static void main(String[] args) {

int numA = 10 ;

int numB = 3 ;

System.out.println("除法计算:" + (numA % numB));

}

}

例如:如果有这样一个需求,要求你判断的给定方法的数字是偶数还是奇数?偶数模20、奇数模21,可以用这样的结果来进行判断。

public class TextDemo {

public static void main(String[] args) {

int numA = 10 ;

int numB = 3 ;

System.out.println("除法计算:" + (numA % 2));

System.out.println("除法计算:" + (numB % 2));

}

}

但是在运算符里面提供了一些简化运算符:*=/=-=+=%=

public class TextDemo {

public static void main(String[] args) {

int num = 10 ;

num *= 2 ;//等价:num = num * 2

System.out.println(num);

}

}

还有一类运算符++”(自增)、“--”(自减),它根据位置不同,执行的顺序也不同:

l ++变量、--变量:写在前面表示的是先进行变量内容的自增1或自减1之后再使用变量进行数学计算

变量++、变量--:先使用变量内容进行计算,而后在再实现增1或自减1操作

范例:观察自增(前面)

public class TextDemo {

public static void main(String[] args) {

int numA = 10 ;

int numB = 20 ;

int result = ++numA + numB;

//++写在前面,表示先对numA的变量内容加1

//使用处理后的numA变量的内容 + numB变量的内容

System.out.println("numA =" + numA);

System.out.println(result);

 

}

}

范例:观察自增(后面)

public class TextDemo {

public static void main(String[] args) {

int numA = 10 ;

int numB = 20 ;

int result = numA++ + numB;

//++写在后面,表示先对numA的变量内容进行加法计算

//加法计算完成之后再numA的内容进行自增

System.out.println("numA =" + numA);

System.out.println(result);

 

}

}

2.1三目运算

三目是一种的赋值运算的形式,执行三目的时候以一个布尔表达式的结果进行赋值,基本的语法结构语法如下:

数据类型 变量 = 布尔表达式 ? 满足此表达式时设置的内容 : 不满足此表达式时设置的内容

范例:实现赋值

public class TextDemo {

public static void main(String[] args) {

int numA = 10 ;

int numB = 20 ;

int max = numA > numB ? numA : numB;

//如果nmuA大于numB,返回true,则将numA的内容赋给max

//如果nmuA小于numB,返回false,则将numB的内容赋给max

System.out.println(max);

}

}

如果此处不使用三目运算,则就需要编写如下形式的判断语句完成。

public class TextDemo {

public static void main(String[] args) {

int numA = 10 ;

int numB = 20 ;

int max = 0 ;

if (numA > numB) {

max = numA;

} else {

max = numB;

}

System.out.println(max);

}

}

利用三目可以节约一些判断代码。

2.2逻辑运算

对于逻辑运算主要就是:与(&&&)、或(|||)、非(!)三种计算。

范例:非就是针对对于布尔结果进行求法

public class TextDemo {

public static void main(String[] args) {

boolean flag = true;

System.out.println(!flag);

}

}

如果现在是多个布尔表达式要想进行连接,只能使用与和或两个操作。

1、与操作:

当多个条件进行连接的时候,那么只有这多个条件都满足了,最终的结果才是true,如果有一个条件是false,结果就是false

范例:观察普通与&

public class TextDemo {

public static void main(String[] args) {

if ((1 == 2) & (10 /0 == 0)) {

System.out.println("Hello World");

}

}

}

此时使用的是一个&”,发现第一个判断返回false之后第二个判断(10 / 0 == 0)继续执行了,但是现在的问题是如果前面的条件已经返回了false,后面不过有多少个true,最终的结果还是false,完全没有必要进行后续的判断。

范例:使用短路与(&&

public class TextDemo {

public static void main(String[] args) {

if ((1 == 2) && (10 /0 == 0)) {

System.out.println("Hello World");

}

}

}

此时没有出错,因为前面的条件返回了false,后面就自然不再需要判断了。

2、或操作

或要求所有的判断条件只要有一个满足即可。

范例:观察普通或(|

public class TextDemo {

public static void main(String[] args) {

if ((1 == 1) | (10 /0 == 0)) {

System.out.println("Hello World");

}

}

}

使用普通或操作的时候所有的判断条件都进行了执行,但是货运算里面它的基本形式是:只要有一个判断返回了true,后面不管有多少个true或者是false,最终的结果永远都是true

范例:观察短路或操作(||

public class TextDemo {

public static void main(String[] args) {

if ((1 == 1) || (10 /0 == 0)) {

System.out.println("Hello World");

}

}

}

从此就使用短路与和短路或操作。

2.3、位运算(了解)

在之前所进行的数学计算都是用的是十进制数据,而Java本身的运算支持二进制、八进制、十六进制。下面观察二进制,如果将想十进制变为二进制的形式,采用的方式:除2取余、倒序。

25二级制就是11001

÷2

12……1

÷2

6……0

÷2

3……0

÷2

1……1

÷2

0……1

位运算是主要进行二进制数据操作的,可以使用:&|>><<^~

范例:实现位与操作(乘)

public class TextDemo {

public static void main(String[] args) {

int numA = 9 ;

int numB = 11;

System.out.println(numA & numB);

}

}

9的二进制:00000000  00000000  00000000  00001001

11的二级制:00000000  00000000  00000000  00001011

&的结果:00000000  00000000  00000000  000010019

范例:实现位或操作

public class TextDemo {

public static void main(String[] args) {

int numA = 9 ;

int numB = 11;

System.out.println(numA | numB);

}

}

9的二进制:00000000  00000000  00000000  00001001

11的二级制:00000000  00000000  00000000  00001011

|的结果:00000000  00000000  00000000  0000101111

范例:移位操作(请用最快的方式计算23次方结果)

public class TextDemo {

public static void main(String[] args) {

int num = 2 ;

int result = num << 2;//向左移位

System.out.println(num);//原始数据不改变

System.out.println(result);//2 * 2 * 2

}

}

2的二进制: 00000000  00000000  00000000  00000010

左移位之后:00000000  00000000  00000000  00001000 8

面试题:请解释&”和“&&”的区别?“|”和“||”的区别

·逻辑运算:

|-与运算分别为普通与(&)短路和与(&&

|-普通与:所有的条件都要判断;

|-短路与:如果前面的判断返回了false,后面不再判断。最终的结果就是false

|-或运算分为普通或(|)短路和或(||

|-普通或:所有的条件都要判断;

|-短路或:如果前面的判断返回了true,后面不再判断。最终的结果就是true

·位运算:位与运算(&)、位或运算(|)。其中“&&”和“||”不能应用在位位运算   上。

3、总结

1、运算符写简单操作;

2、三目一定要掌握;

3、使用短路与和短路或。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值