[java入门学习]第 3 章 运算符和表达式.
- 格式:doc
- 大小:20.50 KB
- 文档页数:7
java 基本语言符号Java是一种流行的编程语言,它有一些基本的语言符号和关键字,用于构建程序。
以下是一些Java的基本语言符号和关键字:1. 分号(;):在Java中,分号用于表示语句的结束。
每个语句都应该以分号结尾。
2. 大括号({}):大括号用于定义代码块,例如类的主体、方法的主体等。
代码块包含在一对大括号中。
3. 圆括号(()):圆括号用于表示方法的参数列表、条件语句等。
方法的参数被放置在一对圆括号中。
4. 关键字:Java中有一些保留的关键字,用于表示特定的操作、语义等。
例如:`public`、`class`、`static`、`if`、`else`等。
5. 标识符:标识符是由开发人员定义的名称,用于表示变量、方法、类等。
标识符必须以字母、下划线(_)或美元符号($)开头,后面可以跟字母、数字、下划线和美元符号。
6. 注释:注释用于解释代码的目的、功能等,不会被编译器执行。
Java有两种类型的注释:单行注释(`//`)和多行注释(`/* */`)。
7. 运算符:Java支持各种运算符,如算术运算符(`+`、`-`、`*`、`/`等)、关系运算符(`==`、`!=`、`>`、`<`等)、逻辑运算符(`&&`、`||`、`!`等)等。
8. 数据类型:Java有基本数据类型(如`int`、`double`、`char`等)和引用数据类型(如类、接口、数组等)。
9. 修饰符:修饰符用于调整类、方法、变量等的访问权限和行为,如`public`、`private`、`static`等。
10. 类:Java中的类是面向对象编程的基本单元,用于定义对象的属性和行为。
11. 方法:方法是执行特定任务的代码块。
Java程序从`main`方法开始执行。
12. 对象:对象是类的实例,具有类定义的属性和方法。
这只是Java语言中的一些基本语言符号和关键字。
如果您想要更详细的信息,可以查阅Java 编程的相关资料或文档。
Java基础之数据类型,运算符与流程控制开始重新找工作了,但是感觉基础比较薄弱,所以拿出点时间复习以下以前的知识,一步一步打好基础,让步子走的更稳健一些,虽然基层差,但我是每天都在进步的,而且进步的很快!数据类型基本数据类型(Primitive Type)和引用数据类型(Reference Type)基本数据类型布尔类型和数值类型,数值类型又可分为整数类型和浮点类型∙整数类型byte 1个字节short 2个字节int 4个字节long 8个字节∙字符类型char 2个字节∙浮点型double 8个字节float 4个字节∙布尔类型boolean 1个字节整型整数常量有4种:十进制,二进制,八进制,十六进制//以0开头的是八进制 \nint octalValue = 013//以0x或0X开头的整数常量是十六进制的整数int hexValue1 = 0x13;int hexValue2 = 0XaF;字符型字符常量有3种表示形式1.直接通过单个字符来指定字符型常量,例如’a','4'2.通过转义字符表示特殊字符型常量,例如‘\n','\t'3.直接使用Unicode值来表示字符型常量,格式是'\uXXXX’范围在0~65535内,char类型和int类型可以互相转换浮点型固定的表数范围与长度,字段长度和表数范围与机器无关。
∙float 第1位是符号位,接下来8位表示指数,接下来23位表示尾数∙double 第1位是符号位,接下来的11位表示指数,接下来52位表示尾数,小数默认类型高精度数字BigInteger支持任意精度的整数BigDecimal支持任意精度的定点数浮点数有两种表示形式1.十进制数形式:简单的浮点数,例如 5.12,512.02.科学计数法形式:例如5.12e2,5.12E23个特殊的浮点数:正无穷大、负无穷大和非数布尔型只能是true或false,不能用0或者非0代表。
第三章运算符和表达式3.1 运算符和表达式概述使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。
用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。
另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。
根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类:(1) 单目(一元)运算符:只连接一个操作数的运算符。
(2) 双目(二元)运算符:带有两个操作数的运算符。
(3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。
C语言中的表达式可以分为三类:(1) 单个常量或者单个变量是最简单的表达式。
(2) 带有运算符的表达式。
(3) 函数调用。
任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。
所以运算对象、运算符和运算结果是运算的三大要素。
3.2 算术运算符和算术表达式一、基本算术运算符和简单算术表达式1. 基本算术运算符C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。
2. 简单算术表达式当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。
简单算术表达式的基本形式:data1 op data2。
data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。
假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。
3. 基本算术运算符使用说明(1) +、-、*,/既可以连接整型数据,也可以连接实型数据。
当参与这4个运算符的运算对象都是整型数据时,得到整型数据运算结果;否则表示浮点运算。
例如,int a=15,b=2;则a*b等于30,而a/b等于7;a*2.0等于30.0,而a/2.0等于7.5。
一、概述在计算机编程领域,逻辑运算符号在控制程序流程和逻辑判断方面起着至关重要的作用。
而在Java语言中,常用的逻辑运算符号包括与、或和非三种类型。
本文将分别介绍这三种运算规则符号的使用方法和注意事项,帮助读者更好地理解和运用Java语言中的逻辑运算。
二、与运算规则符号与运算规则符号在Java中使用符号“”表示,其作用是同时满足两个条件时返回true,否则返回false。
值得注意的是,与运算规则符号具有短路特性,即当第一个条件不满足时,将不再执行第二个条件判断。
下面是一个示例代码:```javaint a = 5;int b = 3;if (a > 3 b < 5) {System.out.println("条件成立");} else {System.out.println("条件不成立");}```在上面的示例中,如果a大于3且b小于5时,将会输出“条件成立”,否则输出“条件不成立”。
由于与运算规则符号的短路特性,当a不大于3时,将不会继续判断b是否小于5,直接输出“条件不成立”。
三、或运算规则符号或运算规则符号在Java中使用符号“||”表示,其作用是满足其中一个条件时返回true,只有在两个条件都不满足时才返回false。
与运算规则符号类似,或运算规则符号也具有短路特性。
下面是一个示例代码:```javaint c = 7;int d = 2;if (c > 5 || d < 1) {System.out.println("条件成立");} else {System.out.println("条件不成立");}```在上面的示例中,如果c大于5或d小于1时,将会输出“条件成立”,否则输出“条件不成立”。
同样地,由于或运算规则符号的短路特性,当c大于5时,将不会继续判断d是否小于1,直接输出“条件成立”。
java基础语法2-运算符与流程控制关键字-标识符-常量和变量-运算符-流程控制-⽅法-数组5 运算符算术运算符Arithmetic Operators赋值运算符Assignment Operators⽐较运算符Compare Operators逻辑运算符Logic Operators位运算符Bitwise Operators三元运算符Ternary Operator5.1算术运算符Arithmetic Operators注意:1.除法操作两个操作数是整数时,结果也是整数,余数部分舍弃int x = 3500;System.out.println(x / 1000 * 1000);2.%操作获得的是除法操作的余数%结果的符号取决于被模数,即%前⾯的数的符号决定了结果的正负5.1.1++,--++:⾃加放在变量前,先⾃增,再使⽤放在变量后,先使⽤,后⾃增--:⾃减放在变量前,先⾃减,后使⽤放在变量后,先使⽤,后⾃减注意:只能对变量使⽤练习题:练习题1:int a = 10;int b = 10;int c = 10;a = --c;b = c++;c = ++a;经过以上操作,abc的值分别是多少?练习题2:int a = 4;int b = (++a)+(a++)+(a*10);经过以上操作,ab的值分别是多少?练习题5.1.2字符串参与运算:1.两个操作数都是字符串2.⼀个字符串⼀个变量3.多个操作数“+”除了字符串相拼接功能外,还能把⾮字符串转换成字符串,加空串即可String s = 5 + "";思考:System.out.println("5+5="+5+5);//打印结果是?System.out.println(5+5+"hello");思考5.2扩展的赋值运算符符号: = , +=, -=, *=, /=, %=(扩展的赋值运算符) 左侧为变量,右侧为字⾯量,或变量,或表达式⽰例: int a,b,c; a=b=c=3;//⽀持连续赋值 int a = 3;a += 5; //等同运算:a=a+5;思考:short s = 3;s = s + 2; //报错s += 2; //扩展的赋值运算符会默认做强制的类型转换s=(short)(s+2)s=s+2//编译失败,因为s会被提升为int类型,运算后的结果还是int类型。
运算符和表达式按运算符的优先级⾼低次序执⾏;若优先级相同,则按照结合性规则执⾏如item+2*num中,*运算符的优先级⽐+运算符⾼,因此,先进⾏”2*num"运算,再与“item"运算*p--中,*和--都是右结合,其运算顺序为p先与--结合,执⾏”p--"运算,所得结果再与*进⾏运算,相当于"*(p--)"算术运算符分为基本算术运算符和⾃增/⾃减算术运算符1.基本算术运算符在C语⾔中,基本运算符有5个,+——加法运算符-—— 减法运算符*——乘法运算符/——除法运算符%——求余运算符注意:对除法运算符,如果两个整数相除,结果仍为整数(商向下取整),如:20/6得6;如果除数或被除数中有⼀个为负值,则舍⼊的⽅向是不固定的。
如果参加+、-、*、/运算的两个数中⾄少有⼀个数为浮点数,则运算结果是double型数据,⾃动转换后所有数都按double型进⾏运算。
求余运算符%,两个操作对象都必须是整数。
结果的符号与运算符%左边的操作数的符号相同。
如:20%6得2,-45%8得-5,45%-8得5.减法运算符还可以进⾏取负运算,此时该运算符为单⽬运算符,只需⼀个操作数。
如num=-num,对num变量值取负。
基本运算符的优先级次序算术运算符的结合⽅向为“⾃左⾄右”。
如在表达式“m-n+a"中,先执⾏”m-n",再与a相加2.⾃增/⾃减算术运算符++——⾃增运算符-- ——⾃减运算符作⽤是使整型变量的值加1或减1。
这两个运算符只能⽤于变量,⽽不能⽤于常量或表达式。
⾃增/⾃减运算符都是单⽬运算符表达式++i将i的值加1,使⽤i的值表达式i++先使⽤i的值,再将i的值加1如:i=51,求j(1)j=++i——i的值先加1变为52,再赋值于j,j=52(2) j=i++——先将i的值赋值给j,j=51,再将i加1,i=52++和--是单⽬运算符,其优先级⾼于基本算术运算符,于取负运算符-的优先级相同。
《Java程序设计》课程教学大纲课程编号:08120031课程名称:Java程序设计/JAVA Programming总学时/学分:48/3(其中理论32学时,实验16学时)适用专业:计算机科学与技术一、课程目标通过本课程学习,学生应达到如下目标:目标1. 识别Java语言特点、基本语法、语言机制。
目标2. 将面向对象方法知识运用在程序设计案例中,能使用JAVA常用类、枚举、lambda 表达式、容器、泛型进行实例编程验证。
目标3. 利用JavaSE中的异常处理、输入输出等技术来表达处理程序应用问题。
目标4. 将图形用户界面和数据库编程技术运用中综合应用程序设计中。
目标5. 搭建Java开发环境,能设计实现各种Java技术的应用程序,且能测试运行。
二、课程目标对毕业要求的支撑三、教学过程安排四、实验或上机内容五、课程目标达成方法六、考核标准本门课程考核包括6个部分,分别为考试、作业、实验、讨论和测验。
具体要求及评分方法如下:1、期末考试试卷知识点要求2、作业3、实验4、讨论设置讨论课一次,要求学生按照讨论题目分组查阅资料,归纳总结,撰写报告。
5、测验随堂测验,老师给出题目,学生回答。
具体有任课老师给出评分标准。
七、教材及主要参考资料[1] 黑马程序员. Java基础入门(第2版)[M]. 清华大学出版社, 2018.[2] 郑人杰、马素霞、殷人昆. 软件工程概论(第2版)[M]. 机械工业出版社,2016.[3] Gay S.Horstmann. Java核心技术(第10版)[M]. 机械工业出版社,2016.[4] Y.Daniel Liang(美). Java语言程序设计(第10版)[M]. 机械工业出版社.2015.[5] 李刚. 疯狂Java讲义(第4版)[M]. 电子工业出版社,2018.[6] 封亚飞. 揭秘Java虚拟机[M]. 电子工业出版社,2017.[7] Bruce Eckel(美). Java编程思想(第4版)[M]. 机械工业出版社,2007.。
第 3 章运算符和表达式
运算符指明对操作数所进行的运算。
按操作数的数目来分,可以有一元运算
符 (如 ++、--,二元运算符(如 +、>和三元运算符 (如?:,它们分别对应于一个、两个和三个操作数。
对于一元运算符来说 ,可以有前缀表达式 (如++i 和后缀表达式 (如 i++,对于二元运算符来说则采用中缀表达式(如a+b。
按照运算符功能来分,基本的运算符有下面几类 :
1.算术运算符 (+,-,*,/,%,++,--
2.关系运算符 (>,<,>=,<=,==,!=
3.布尔逻辑运算符 (!,&&,||
4.位运算符 (>>,<<,>>>,&,|,^,~
5.赋值运算符 (=,及其扩展赋值运算符如+=
6.条件运算符 ( ?:
7.其它
(包括分量运算符·,下标运算符 [],实例运算符 instance of,内存分配运算符new,强制类型转换运算符(类型,方法调用运算符 ( 等
本章中我们主要讲述前6类运算符。
§ 3.1算术运算符
算术运算符作用于整型或浮点型数据 ,完成算术运算。
一、二元算术运算符
如下表所示运算符用法描述
+ op1+op2 加
- op1-op2 减
* op1*op2 乘
/ op1/op2 除
% op1%op2 取模(求余
Java对加运算符进行了扩展,使它能够进行字符串的连接 ,如 "abc"+"de",得到
串 "abcde"。
我们将在第七章中讲解。
与C、 C++不同,对取模运算符%来说,其操作数可以为浮点数, 如 37.2%10=7.2。
二、一元算术运算符
如下表所示 :
运算符用法描述
+ +op 正值
- -op 负值
++ ++op,op++ 加1
-- --op,op-- 减1
i++与 ++i的区别
i++在使用i之后,使 i的值加 1,因此执行完 i++后,整个表达式的值为 i,而 i的值变为 i+1。
++i在使用i之前,使 i的值加 1,因此执行完 ++i后 ,整个表达式和 i的值均为 i+1。
对 i--与 --i同样。
例 3.1.下面的例子说明了算术运算符的使用
public class ArithmaticOp{
public static void main( String args[] {
int a=5+4; //a=9
int b=a*2; //b=18
int c=b/4; //c=4
int d=b-c; //d=14
int e=-d; //e=-14
int f=e%4; //f=-2
double g=18.4;
double h=g%4; //h=2.4
int i=3;
int j=i++; //i=4,j=3
int k=++i; //i=5,k=5 System.out.println("a = "+a; System.out.println("b = "+b; System.out.println("c = "+c; System.out.println("d = "+d; System.out.println("e = "+e; System.out.println("f = "+f; System.out.println("g = "+g; System.out.println("h = "+h; System.out.println("i = "+i; System.out.println("j = "+j; System.out.println("k = "+k; }
}
其结果为:
C:\>java ArithmaticOp
a = 9
b = 18
c = 4
d = 14
e = -14
f = -2
g = 18.4
h = 2.4
i = 5
j = 3
k = 5
§ 3.2关系运算符
关系运算符用来比较两个值,返回布尔类型的值 true或false。
关系运算符都是二元运算符,如下表所示 :
运算符用法返回true的情况
> op1>op2 op1大于op2
>+ op1>=op2 op1大于或等于op2
< op1<op2 op1小于op2
<= op1<=op2 op1小于或等于op2
== op1==op2 op1与op2相等
!= op1!=op2 op1与op2不等
Java中 ,任何数据类型的数据 (包括基本类型和组合类型都可以通过==或 !=来比较是否相等 (这与 C、 C++不同。
关系运算的结果返回true或 false,而不是C、C++中的1或 0。
关系运算符常与布尔逻辑运算符一起使用,作为流控制语句的判断条件。
如
if( a>b && b==c
§ 3.3布尔逻辑运算符
布尔逻辑运算符进行布尔逻辑运算,如下表所示 :
op1 op2 op1&&op2 op1||op2 !op1
false false false false true
false true false true true
true false false true false
true true true true false
}@@@
·&&、‖为二元运算符,实现逻辑与、逻辑或。
·! 为一元运算符,实现逻辑非。
·对于布尔逻辑运算,先求出运算符左边的表达式的值,对或运算如果为true,则整个表达式的结果为true,不必对运算符右边的表达式再进行运算;同样,对与运算,如果左边表达式的值为false,则不必对右边的表达式求值,整个表达式的结果为false。
下面的例子说明了关系运算符和布尔逻辑运算符的使用。
@@@[
public class RelationAndConditionOp{
public static void main( String args[] {
int a=25,b=3;
boolean d=a<b; //d=false
System.out.println("a<b = "+d;
int e=3;
if(e!=0 && a/e>5
System.out.println("a/e = "+a/e;
int f=0;
if(f!=0 && a/f>5
System.out.println("a/f = "+a/f;
else
System.out.println("f = "+f;
}
}
其运行结果为:
C:\>java RelationAndConditionOp
a<b = false
a/e = 8
f = 0
注意 :上例中 ,第二个if语句在运行时不会发生除0溢出的错误,因为e!=0为false,所以就不需要对 a/e进行运算。
§ 3.4位运算符
位运算符用来对二进制位进行操作,Java中提供了如下表所示的位运算符 :
位运算符中 ,除~以外 ,其余均为二元运算符。
操作数只能为整型和字符型数据。
3.4.1补码
Java使用补码来表示二进制数 ,在补码表示中 ,最高位为符号位 ,正数的符号位为0,负数为 1。
补码的规定如下 :
对正数来说 ,最高位为 0,其余各位代表数值本身 (以二进制表示 ,如 +42的补码为 00101010。
对负数而言,把该数绝对值的补码按位取反,然后对整个数加1,即得该数的补
码。
如-42的补码为 11010110 (00101010 按位取反 11010101 +1 11010110 用补码来表示数,0的补码是唯一的,都为00000000。
(而在原码,反码表示中,+0和 -0的表示是不唯一的,可参见相应的书籍。
而且可以用111111表示 -1的补码(这也是补码与原码和反码的区别。
3.4.2按位取反运算符~
~是一元运算法,对数据的每个二进制位取反 ,即把 1变为 0,把0变为1。
例如 :
0010101
~
1101010
注意 ,~运算符与 - 运算符不同 ,~21≠ -21。
3.4.3按位与运算符 &
参与运算的两个值,如果两个相应位都为1,则该位的结果为 1,否则为0。
即 : 0 & 0 = 0,0 &1 = 0,1 & 0 = 0,1 & 1 = 1。