您的位置:首页 > 编程语言 > Java开发

JAVA语言学习笔记之运算和语句

2009-11-18 15:45 447 查看
2.1数据运算
高级语言中,运算通过表达式来表示。表达式又是通过运算符和运算分量组成,运算分量是指常量、变量、方法调用。
JAVA的基本运算有下列几种:
赋值运算算术运算、
自增运算
自减运算
关系运算
逻辑运算
条件运算、
字符串连接运算。
2.1.1 赋值运算
赋值运算分为两类:简单赋值运算、复合赋值运算
1.简单赋值运算形式
变量=表达式
赋值运算执行过程:
(1)计算表达式(2)赋值运算符两端类型不一致时候,表达式值类型自动转换为变量类型(3)赋值到变量并同时存储到变量对应的存储单元
注意点:自动类型转换是指简单类型向复杂类型的转换,是单向的,既不能由复杂转换成简单的
byte-short-int-long-float-double
赋值运算符结合性是"自右向左",有连续多个赋值运算时,从右向左逐个赋值
2.复合赋值运算
复合赋值运算的特点是变量要参与运算也要接受赋值,常用的赋值运算符有:
+=
-=
*=
/=
%=
如果@为双目运算符,则复合运算x@=e就等效于x=x@(e)

2.1.2算术运算
算术运算中运算变量的类型都是数值型(整数类型或是浮点数类型),其中只有一个运算分量的是单目运算,有两个运算分量的是双目运算。
单目运算符: +(取正)、-(取负)
双目运算符: +(加)、-(减)、*(乘)、/(除)、%(余数)
注意点:单目运算符优先级高于双目运算符;余数运算符的结果符号与被除数符号相同

2.1.3自增和自减运算
自增运算符"++"、自减运算符"--"都是单目运算符,并且要求运算分量是数值类型变量,作用是是变量值增加1或者减少1。
自增自减运算的四种形式:
++i形式,引用变量前i+1,变量值为i初始值加1 如:i=4;j=++i;运算结果i=5,j=5
--i形式,引用变量前i-1,变量值为i初始值减1 如:i=4;j=--i;运算结果i=3,j=3
i++形式,引用变量后i+1变量值在运算后将初始值加1 如:i=4;j=i++;运算结果i=5,j=4
i--形式,引用变量后i-1变量值在运算后将初始值减1 如:i=4;j=i--,运算结果i=3,j=4
注意点:自增自减运算时的运算对象只能是变量,不能使常量或表达式,如4++或(i+j)++为不合法

2.1.4关系运算
关系运算用来进行两个表达式的比较,运算的结果是布尔型。
关系运算符有6个,如下:
<小于
<=小于等于
>大于
>=大于等于
==等于
!=不等于
关系运算结果有两个,比较结构成立为true,比较结构不成立为false
注意点:<、>、<=、>=的运算优先等级高于==、!= ;关系运算符的优先级低于算术运算符;关系运算符的结合方向是从左向右

2.1.5逻辑运算
逻辑运算用来实现连续多个条件的逻辑与、逻辑或、逻辑否定的判定。逻辑运算符有三个&&(与)、||(或)、!(非)。逻辑运算的操作数是布尔型,结果也是布尔型。
注意点:!(非)的优先级高于算术运算符,&&(与)和||(或)优先级低于关系运算符
逻辑运算基本性质:
1.对于表达式a&&b,如果a=false,该表达式为false,仅当a=true时,计算b,确定表达式结果
2.对于表达式a||b,如果a=true,该表达式为true,仅当a=false时,计算b,确定表达式结果

2.1.6条件运算
条件运算属于三目运算,形式为逻辑表达式?表达式1:表达式2
条件运算的执行过程:
(1)计算逻辑表达式
(2)如果逻辑表达式的值为true,计算表达式1,并以表达式1的值作为条件运算的结果

(3)如果逻辑表达式的值为false,计算表达式2,并以表达式1的值作为条件运算的结果
注意点:条件运算符(?:)优先级高于赋值运算符,低于逻辑运算符,关系运算符,算术运算符;条件运算符的结合性为“自右向左”,如x>y?:x:u>v?:u:v等价于x>y?x:(u>v?:u:v)

2.1.7位运算和移位运算

1.位运算
位运算符有4个,优先级从高到低分别是~(位反)、&(位与)、^(位异或)、|(位或)
位反运算符是单目运算符,其优先级高于算术运算符,位与、位异或、位或运算符低于关系运算符
(1)位与运算
规则0&0=0 ,0&1=0,1&0=0,1&1=1
典型用法:一种是取位串的某几位,一种是保留变量的某几位
(2)位或运算
规则 0|0=0,0|1=1,1|0=1,1|1=1
典型用法:将位串的某几位置1
(3)位异或运算
规则 0^0=1,0^1=0,1^0=1,1^1=0
典型用法:将位串的某几位取反
(4)位反运算
规则 诸位将位串各位取反
典型应用:将正数变为负数(原码取反+1变成补码)、负数变为正数(补码-1取反)

2.移位运算
移位运算符有三个 分别是左移运算符<<、右移运算符>>、逻辑右移运算符>>>
左移运算规则:左运算分量每一位向左运动,右边空出位置用0填充,左端移出位信息丢弃。每左移1位相当于乘2
右移运算规则:左运算分量每一位向右移动,右端移出位信息丢弃。每右移1位相当于除以2

2.2语句
程序语言使用语句来描述计算步骤。
JAVA语言中语句的基本形式:
基本语句-------------------表达式语句
空语句
Break语句
Continue语句
Return语句
控制结构语句------------复合语句
If语句
Switch语句
循环语句---------------while语句
Do…while语句
For语句
Try…catch语句
Package语句
Import语句

2.2.1基本语句
基本语句主要由表达式语句、空语句、break语句、continue语句、return语句等。基本语句以分号结尾。
1.表达式语句
在赋值表达式、自增自减表达式、方法调用表达式后加上分号即为表达式语句。
2.空语句
只有一个分号的语句。空语句什么都不执行,作用使用循环执行动作的程序中
3.break语句
出现在多路按值选择结构或循环结构中,强制结束所在的控制结构,让程序执行后续语句。
4.continue语句
出现在循环结构中,作用是提早结束当前轮次循环,进入下一轮次循环
5.return语句
出现在方法体中,作用是结束方法的执行返回到方法调用处。

2.2.2复合语句
2.2.3 if语句
两路条件选择结构,基本型式如下:
If (条件表达式)
语句1
Else
语句2
2.2.4 switch语句
Switch(表达式)
{
Case常量表达式1:语句序列1;break;
Case 常量表达式2:语句序列2;break;

Case常量表达式n:语句序列n;break;
}
2.2.5 try…catch语句
为了出线异常处理代码时,可以直接中断正常的执行流程,直接执行处理异常的程序语句块。
基本型式:
Try
{语句块
}
Catch
{异常发生时需要处理的程序}
Finally
{无论是否发生异常的都要处理的语句块}
2.2.6 while语句
当条件成立时候重复执行指定的循环体。
基本形式:
While(条件表达式)
循环体
2.2.7 do…while语句
重复执行指定的循环体,直至条件不成立结束循环。
基本形式:
Do
循环体
While(条件表达式)
2.2.8 for语句
循环之前为变量设置初始值,在循环结构中变量逐一变化的循环计算结构。
For循环语句包含四个部分:为循环有关变量赋初始值的表达式、控制循环条件的表达式2、实现循环计算的语句、执行循环后有关变量更新的表达式3
基本形式:
For(表达式1;表达式2;表达式3)
语句

For语句的状况
(1)for语句形式中,表达式1、表达式2、表达式3都可以省略。
表达式1省略表示没有赋初值部分,前面的程序段已经为有关变量赋了初值;
表达式2省略表示循环条件永远为真,循环体中使用break语句转移
表达式3省略表示没有独立的变量更新,变量更新在循环体中处理
注意点,无论三个表达式是否都省略,其中的两个分号不能省略,如下格式
for(;;){

If (条件)break;

}

(2)在表达式1、表达式2、表达式3都可包含多个子表达式,子表达式之间用逗号分隔
(3)允许在初始化部分(表达式1)对变量作说明

2.2.11 package语句
程序员可以使用该语句将自己编写的类组成程序包,便于以后调用。
基本形式:
Package 包名;
注意点:package语句必须出现在源程序文件的起始行,表示出现在该文件的所有类都属于该程序包;包名是一个目录名,可以有路径。如果源程序文件首行没有package语句,则被默认为无名包,存于当前目录

2.2.12 import语句
用来引入所需要的类。
基本格式:
Import 包名.类
注意点:如果需要从一个包中引入多个类,可以用通配符”*”
Java源程序中可以有多个import语句,它们必须出现在package语句之后,类的定义之前

2.2.13 java应用程序的基本结构
[package 包名;]
Import 包名.类名;
…//更多的import语句,引入更多的类
[align=left][public]class类名{[/align]
[align=left]Int val=… //变量定义语句[/align]
[align=left]Public static void main(string args[]) //方法定义[/align]
[align=left]{[/align]
[align=left]…//变量定义和控制语句构成的方法体[/align]
[align=left]}[/align]
[align=left]}[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息