【java程序设计期末复习】chapter3 运算符、表达式和语句

本文主要是介绍【java程序设计期末复习】chapter3 运算符、表达式和语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

运算符、表达式和语句

Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。
Java语言中的绝大多数运算符和C语言相同,基本语句,如条件分支语句、循环语句等也和C语言类似,因此,本章就主要知识点给予简单的介绍 。

运算符和运算表达式

加减运算符: +,-
加减运算符是二目运算符;加减运算符的结合方向是从左到右;加减运算符的操作元是整型或浮点型数据,加减运算符的优先级是4级。
乘、除和求余运算符: * / %
以上运算符是二目运算符,结合方向是从左到右,乘、除和求余运算符的操作元是整型或浮点型数据。运算符的优先级是3级。
关系运算符: > , < , >= , <= , == , !=
特点:关系运算符是二目运算符,用来比较两个值的关系,见表4.1。
关系运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则是false。
运算规则:
(1)在关系运算符中,当操作数是基本数据类型时,比较的是数据内容;
(2)在关系运算符中,当操作数是引用类型时,比较的是引用对象的引用值,
(3)判断是否是同一对象,而没有比较对象的内容
逻辑运算符 && || !
其中:&&、|| 为二目运算符,实现逻辑与、逻辑或;
!为单目运算符,实现逻辑非。
规则:
逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以用来连接关系表达式,见表4.2。

&&,||也称短路运算符
当前面的表达式op1的值为false时,&&运算符在运算时就不再去计算op2表达式的值;
当op1为true时,||运算符就不再计算op2的值。
(op1&&op2;op1||op2)。
public static void main(String args[])   {    int x=10,y=10;if( ((x=0)==0) || ((y=20)==20) )    {  System.out.println("现在x的值是:"+x);System.out.println("现在y的值是:"+y);}}} 
//x的值是0,但y值依旧是10

位运算符
位运算符:是指对两个整型数据按照对应的位进行运算,结果为新的整型数据。
“按位与”运算,“&”是双目运算符。
运算法则是:如果a,b两个数据对应位都是1,则c的该位是1,否则是0。
“按位或”运算“|”是双目运算符
运算法则是:如果a,b两个数据对应位都是0,则c的该位是0,否则是1。
“按位非”运算“~”是单目运算符。
运算法则是:如果a对应位都是0,则c的该位是1,否则是1。
“按位异或”运算“^”是双目运算符。
运算法则是:如果a,b两个数据对应位相同,则c的该位是0,否则是1。

class Example3_1 
{  public static void main(String args[]){ char a1='十',a2='点',a3='进',a4='攻';char secret='8';a1=(char)(a1^secret);   a2=(char)(a2^secret);a3=(char)(a3^secret);   a4=(char)(a4^secret);System.out.println("密文:"+a1+a2+a3+a4);a1=(char)(a1^secret);   a2=(char)(a2^secret);a3=(char)(a3^secret);  a4=(char)(a4^secret);System.out.println("原文:"+a1+a2+a3+a4);}
}
/*
密文:卹炁迣攃
原文:十点进攻
*/

算术表达式
用算术符号和括号连接起来的符合java语法规则的式子,称为算术表达式。
如:

x+2*y-30+3*(y+5) 

自增,自减运算符
单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。作用是使变量的值增1或减1,
如:
++x(–x)表示在使用x之前,先使x的值增(减)1。
x++(x–)表示在使用x之后,使x的值增(减)1。

int f=2;
int m=2; 
int x=(f*m++)+m; //x=7;
int y=(f*++m)+m; //y=9;

算术混合运算的精度问题

java中数据类型的精度从“低”到“高”排列的顺序是:

byte  short  char  int  long  float  double  

Java在计算算术表达式的值时,使用下列计算精度规则:
(1)如果表达式中有双精度浮点数(double型数据),则按双精度进行运算.
(2)如果表达式中最高精度是单精度浮点数(float型数据),则按单精度进行运算.
(3)如果表达式中最高精度是long型整数,则按long精度进行运算.
(4)如果表达式中最高精度低于int型整数,则按int精度进行运算.
(5)char型数据和整型数据运算结果的精度是int。

最低的计算精度是int
例如:5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。
例如:byte x=7; 则执行表达式 ‘B’+x; 的结果是int型。
import java.util.*;
public class Example3_9 {public static void main (String args[ ]){Scanner reader=new Scanner(System.in);double sum=0;int m=0;while(reader.hasNextDouble()){double x=reader.nextDouble();m=m+1;sum=sum+x;}System.out.printf("%d个数的和为%f\n",m,sum);System.out.printf("%d个数的平均值是%f\n",m,sum/m); }
}

这篇关于【java程序设计期末复习】chapter3 运算符、表达式和语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1005520

相关文章

java如何解压zip压缩包

《java如何解压zip压缩包》:本文主要介绍java如何解压zip压缩包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解压zip压缩包实例代码结果如下总结java解压zip压缩包坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一