1、第第2章章 JAVA语言基础语言基础主讲:朱会东主讲:朱会东E-Mail:Java程序设计程序设计 第第2章章 Java语言基础语言基础Java程序设计程序设计 第第2章章 Java语言基础语言基础第第2章章 Java语言基础语言基础2.1 标识符和关键字标识符和关键字2.2 常量和变量常量和变量2.3数据类型数据类型2.4运算符和表达式运算符和表达式2.5控制语句控制语句2.6数组数组Java程序设计程序设计 第第2章章 Java语言基础语言基础2.1.1 标识符标识符用来标识类名、变量名、方法名、类型名、数组名、用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
2、简单地说,文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。标识符就是一个名字。标识符组成标识符组成:(1)字母字母,(2)数字数字,(3)下划线下划线“_”和和(4)美元符号美元符号“$”;首字符必须是首字符必须是(1)字母字母,(2)下划线下划线“_”和和(3)美美元符号元符号“$”;所有标识符是区分大小写的所有标识符是区分大小写的;除去除去关键字关键字、false、true和和null;Java程序设计程序设计 第第2章章 Java语言基础语言基础1、字母、字母2、下划线、下划线_3、$符号符号首字母首字母任意多的:任意多的:1、数字、数字2、字母、字母3、下划线、下划线_4
3、、$符号符号其余部分其余部分变变量量名名Java语言中,标识符变量命名要符合一定规则语言中,标识符变量命名要符合一定规则money,score,name,sex变量命名规范:变量命名规范:简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:单词的首字母大写。例如:myScore 2.1.1 标识符标识符Java程序设计程序设计 第第2章章 Java语言基础语言基础问题:是/不是 标识符?myVariable 9pins MYVARIABLE i a+c testing1-2-3_myvariable
4、 java¨ My Variable$myvariable _9pins Its 猫猫2.1.1 标识符标识符Java程序设计程序设计 第第2章章 Java语言基础语言基础2.1.2 关键字关键字关键字就是关键字就是Java语言中已经被赋予特定意义的一些语言中已经被赋予特定意义的一些字符序列。例如:例如:public、static和和class 具有特殊用途,不能作为变量名、方法名和类名具有特殊用途,不能作为变量名、方法名和类名Java程序设计程序设计 第第2章章 Java语言基础语言基础2.1.2 关键字关键字(50个个)Java程序设计程序设计 第第2章章 Java语言基础语言基础常
5、量常量public class Compute double pi=3.14;/计算圆的周长计算圆的周长 public double Perimeter(double radius)return 2*pi*radius;/计算圆的面积计算圆的面积 public double area(double radius)return pi*radius*radius;这个类中,会反这个类中,会反复使用复使用pi 如果如果pi在类中被修改了,计算结果错误在类中被修改了,计算结果错误 如何避免如何避免pi在类中被修改在类中被修改?Java程序设计程序设计 第第2章章 Java语言基础语言基础2.2 常量和
6、变量常量和变量A、以字面形式直接给出值的常量,有不同的数据、以字面形式直接给出值的常量,有不同的数据类型类型boolean常量:常量:true,falsechar型常量:用单引号界定型常量:用单引号界定 ,x20 采用采用Unicode码码,从,从u0000uFFFF字符串常量:用双引号界定字符串常量:用双引号界定“HELLO,WORLD”2.2.1常量Java程序设计程序设计 第第2章章 Java语言基础语言基础 2.2.1 常量常量常量在使用过程中值不会发生变化常量在使用过程中值不会发生变化常量程序中反复使用常量程序中反复使用final 类型类型 常量名常量名=常量值常量值 程序中不会被改
7、程序中不会被改变变public static void main(string args)final double PI=3.14;PI=3.20;强制赋值会发生错误强制赋值会发生错误常量名通常使常量名通常使用大写用大写 Java程序设计程序设计 第第2章章 Java语言基础语言基础电脑使用内存来记忆计算时所使用的数据电脑使用内存来记忆计算时所使用的数据内存如何存储数据?内存如何存储数据?内存像旅馆内存像旅馆 数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间1、开房间(单人间、双人间、总统套间)、开房间(单人间、双人间、总统套间)2、入住、入住内存如何存放数据内存如何存放数据J
8、ava程序设计程序设计 第第2章章 Java语言基础语言基础内存地址不好记,怎么办?内存地址不好记,怎么办?通过内存中小房间的别名找到数据存储的位置变量是存储数据的一个基本单元变量是存储数据的一个基本单元房间房间 房间名字房间名字 房间类型房间类型 入住的客人入住的客人 变量变量 变量名变量名 变量类型变量类型 变量值变量值 为什么需要变量为什么需要变量对应对应Java程序设计程序设计 第第2章章 Java语言基础语言基础2.2.2 变量变量变量是变量是Java程序中的基本存储单元,它具有程序中的基本存储单元,它具有名称、名称、类型、地址、值和作用域类型、地址、值和作用域等特性。变量存储的值等
9、特性。变量存储的值可能会发生更改,但变量名称保持不变。可能会发生更改,但变量名称保持不变。变量采用标识符命名变量采用标识符命名 变量名习惯命名规则是以小写字母开头,单变量名习惯命名规则是以小写字母开头,单词之间不要有分隔符,第二及后面单词第一个字词之间不要有分隔符,第二及后面单词第一个字符用大写字母符用大写字母Java程序设计程序设计 第第2章章 Java语言基础语言基础变量的四个要素变量的四个要素程序通过变量名访问变量的值变量类型由程序员显式地声明,编译器根据类型解释变量地址所指存储空间中的二进制串一个变量与内存中某一区域相关联,变量地址即指该区域的地址该区域中存放的数据即为变量的值,在程序
10、运行的不同时刻,变量的值可能不同。名字名字类型类型值值地址地址Java程序设计程序设计 第第2章章 Java语言基础语言基础变量变量数据类型数据类型 变量名变量名 =数值;数值;根据类型开辟空间根据类型开辟空间 将数据存入空间将数据存入空间 取出数据使用取出数据使用 数据类型数据类型 变量名;变量名;变量名变量名=数值;数值;int money=1000;int money;money=1000;使用变量的步骤:使用变量的步骤:第一步:声明一个变量 第二步:赋值 第三步:使用变量Java程序设计程序设计 第第2章章 Java语言基础语言基础变量变量public static void main
11、(String args)/声明布尔型声明布尔型、字符串型、整型、短整型、字符串型、整型、短整型和和浮点型变量浮点型变量 boolean test=true;short num1=19;int num2=14000;String val=Jamie;float num3=14.5f;/显示变量值显示变量值 System.out.println(布尔值布尔值 =+test);System.out.println(短整型值短整型值 =+num1);System.out.println(整型值整型值 =+num2);System.out.println(字符串值字符串值 =+val);System.
12、out.println(浮点值浮点值 =+num3);变量中存储的值取决于该变量的类型Java程序设计程序设计 第第2章章 Java语言基础语言基础基本数据类型在内存中的存储方式基本数据类型在内存中的存储方式int ID=42889;428890 x0000F10AC存储空间存储空间与与int类型一样大小类型一样大小Java程序设计程序设计 第第2章章 Java语言基础语言基础2.2.3 变量的作用域变量的作用域作用域就是在程序中定义了一个区域作用域就是在程序中定义了一个区域变量在它所定义的语句块中起作用。一个语句块就变量在它所定义的语句块中起作用。一个语句块就是用一对大括号括起来的代码段,块
13、定义了一个是用一对大括号括起来的代码段,块定义了一个作用域。作用域。在作用域内定义的变量仅在该域内有效,对于该域在作用域内定义的变量仅在该域内有效,对于该域之外的代码之外的代码“不可见不可见”信息隐藏的机制信息隐藏的机制Java程序设计程序设计 第第2章章 Java语言基础语言基础变量根据作用域分类的类别变量根据作用域分类的类别类成员变量是定义在类里面,但不在类里面的某个类成员变量是定义在类里面,但不在类里面的某个方法中,其作用域为整个类。方法中,其作用域为整个类。方法参数用于将方法外的数据传递给方法,其作用方法参数用于将方法外的数据传递给方法,其作用域就是方法的方法体。域就是方法的方法体。异
14、常处理参数将数据传递给异常处理代码,其作用异常处理参数将数据传递给异常处理代码,其作用域是异常处理部分。域是异常处理部分。Java程序设计程序设计 第第2章章 Java语言基础语言基础变量作用域的例子变量作用域的例子1 int i;/对这个作用域而言,i是局部变量/这里不可以访问i,i在这里不存在Java程序设计程序设计 第第2章章 Java语言基础语言基础变量作用域的例子变量作用域的例子2在某个局部作用域内定义的变量不能在其嵌套的局部作用域中重新定义。int i=2;int j=4;int i=6;/出错,i已被定义 j=8;Java程序设计程序设计 第第2章章 Java语言基础语言基础cl
15、ass ScopeVar public static void main(String args)int num=10;if(num=10)/num 在内层作用域中可用 int num1=num*num;System.out.println(“num 和 num1 的值为+num+num1);System.out.println(“num 的值为+num);示例示例/num1=10;错误!num1 未知q检查变量的作用域q如果从变量的作用域外访问变量,则会出错!Java程序设计程序设计 第第2章章 Java语言基础语言基础数据属于不同类别数据属于不同类别非洲非洲 The quick brown
16、 fox TRUE 数据数据 非数值非数值数值数值整型整型非整型非整型9002.129999/12/20032.175123陈扬陈扬 char非数值非数值数值数值整型整型intdouble非整型非整型String 数据类型数据类型 2.3 数据类型数据类型Java程序设计程序设计 第第2章章 Java语言基础语言基础2.2.1 基本数据类型基本数据类型基本数据类型也称作简单数据类型。基本数据类型也称作简单数据类型。Java语言有语言有8种简单数据类型,分别是:种简单数据类型,分别是:boolean、byte、short、int、long、float、double、char。这这8种数据类型习惯
17、上可分为种数据类型习惯上可分为4大类型:大类型:逻辑类型:逻辑类型:boolean字符类型:字符类型:char整数类型:整数类型:byte、short、int、long浮点类型:浮点类型:float、doubleJava程序设计程序设计 第第2章章 Java语言基础语言基础1.逻辑类型逻辑类型常量:常量:true,false。变量的定义变量的定义使用关键字使用关键字boolean来定义逻辑变量来定义逻辑变量,定义时也可以定义时也可以赋给初值:赋给初值:boolean x=true,tom=false,jiafei;Java程序设计程序设计 第第2章章 Java语言基础语言基础1、用、用bool
18、ean类型描述:学员张三的考试成绩是类型描述:学员张三的考试成绩是否比学员李四(否比学员李四(80分)高分)高如何使用如何使用boolean类型类型int liSi=80;/学员李四成绩学员李四成绩boolean isBig;/声明一个声明一个boolean类型的变量类型的变量 Scanner input=new Scanner(System.in);System.out.print(输入学员张三成绩输入学员张三成绩:);/提示要输入学员张三的成绩提示要输入学员张三的成绩int zhangSan=input.nextInt();/输入张三的成绩输入张三的成绩 isBig=zhangSan li
19、Si;/将比较结果保存在将比较结果保存在boolean变量中变量中 System.out.println(张三成绩比李四高吗张三成绩比李四高吗?+isBig);/输出比较结果输出比较结果存储比较结果存储比较结果条件表达式条件表达式从控制台接收一从控制台接收一个整数个整数演示示例演示示例1:用:用boolean变量描述信息变量描述信息Java程序设计程序设计 第第2章章 Java语言基础语言基础2.int 型型 使用关键字使用关键字int来定义来定义int型整型变量,定义时也可以型整型变量,定义时也可以赋给初值:赋给初值:int x=12,tom=-1230,height=9898,number
20、;对于对于int型变量,内存分配给型变量,内存分配给4个字节(个字节(byte),),一个字节由一个字节由8位(位(bit)组成,)组成,4个字节占个字节占32位。位。int型变量的取值范围是:型变量的取值范围是:-231231-1 Java程序设计程序设计 第第2章章 Java语言基础语言基础3.byte 型型 使用关键字使用关键字byte 来定义来定义byte 型整型变量,可以一次型整型变量,可以一次定义几个,定义时也可以赋给初值:定义几个,定义时也可以赋给初值:byte m=-12,deep=28,speed=98;对于对于byte型变量,内存分配给型变量,内存分配给1个字节,占个字节,
21、占8位,因位,因此此byte型变量的取值范围是型变量的取值范围是:-2727-1。Java程序设计程序设计 第第2章章 Java语言基础语言基础4.short 型型 使用关键字使用关键字short来定义来定义short型整型变量,可以一型整型变量,可以一次定义几个,定义时也可以赋给初值:次定义几个,定义时也可以赋给初值:short x=12,tom=1234,漂亮漂亮=9876,jiafei;对于对于short型变量,内存分配给型变量,内存分配给2个字节,占个字节,占16位,位,因此因此short型变量的取值范围是:型变量的取值范围是:-215 215-1。Java程序设计程序设计 第第2章章
22、 Java语言基础语言基础6.Char型型 常量Java使用使用unicode字符集,字符集,uincode表中的字表中的字符就是一个字符常量,字符常量需使用单引号扩起,符就是一个字符常量,字符常量需使用单引号扩起,例如:例如:A、b、?、!、9、好好、t、变量使用关键字使用关键字char来定义字符变量,可以一次定来定义字符变量,可以一次定义几个,定义时也可以赋给初值:义几个,定义时也可以赋给初值:char x=A,tom=爽爽,jiafei;对于对于char型变量,内存分配给型变量,内存分配给2个字节,占个字节,占16位,最位,最高为不用来表示符号高为不用来表示符号。Java程序设计程序设计
23、 第第2章章 Java语言基础语言基础例子public class Example2_1 public static void main(String args)char chinaWord=你你,japanWord=;int p1=36328,p2=38358;System.out.println(“汉字汉字你你在在unicode表中的顺序位表中的顺序位置置:+(int)chinaWord);System.out.println(日语日语在在unicode表中的顺序位表中的顺序位置置:+(int)japanWord);System.out.println(unicode表中第表中第20328
24、位置上的字符位置上的字符是是:+(char)p1);System.out.println(unicode表中第表中第12358位置上的字符位置上的字符是是:+(char)p2);Java程序设计程序设计 第第2章章 Java语言基础语言基础7.float 型型 常量 123.5439f,12389.987F,123.0f,2e40f(2乘乘10的的40次方,科学计数法)次方,科学计数法)变量 使用关键字使用关键字float来定义来定义float型变量,可以一次定型变量,可以一次定义几个,定义时也可以赋给初值:义几个,定义时也可以赋给初值:float x=12.76f,tom=1234.987f
25、;对于对于float型变量,内存分配给型变量,内存分配给4个字节,占个字节,占32位位.Java程序设计程序设计 第第2章章 Java语言基础语言基础8.double 型型 常量 12389.5439d(d可以省略),可以省略),12389908.987,123.0,6e-140(6乘乘10的的-140次方,科学计数法)次方,科学计数法)变量 使用关键字使用关键字double来定义来定义double型变量,可以一型变量,可以一次定义几个,定义时也可以赋给初值:次定义几个,定义时也可以赋给初值:double x=12.76,tom=1234098.987;double型变量,内存分配给型变量,内
26、存分配给8个字节,占个字节,占64位位 Java程序设计程序设计 第第2章章 Java语言基础语言基础数据类型的使用数据类型的使用输出输出Java课考试最高分:课考试最高分:98.5输出最高分学员姓名:张三输出最高分学员姓名:张三输出最高分学员性别:输出最高分学员性别:男男public class HelloIEC public static void main(String args)double score=98.5;String name=张三张三;char sex=男男;System.out.println(本次考试成绩最高分:本次考试成绩最高分:+score);/输出其他输出其他 单
27、引号单引号 双引号双引号 连接输出信息连接输出信息 Java程序设计程序设计 第第2章章 Java语言基础语言基础2.3.2 数据类型转换数据类型转换用变量、常量赋值给另一个变量时,两者的数据类用变量、常量赋值给另一个变量时,两者的数据类型必须一致。如不一致,则要进行数据的类型转型必须一致。如不一致,则要进行数据的类型转换换类型转换有类型转换有隐式转换隐式转换(自动类型转换自动类型转换)和和显式转换显式转换(强强制类型转换制类型转换)两种两种Java程序设计程序设计 第第2章章 Java语言基础语言基础2.3.2 数据类型转换数据类型转换自动类型转换q将一种类型的变量赋给另一种类型的变量时,只
28、要满足以下条件,就会发生 自动类型转换:两种类型兼容;目标类型大于源类型;例:将短格式整型数据赋值为长格式整型数据,不会出现例:将短格式整型数据赋值为长格式整型数据,不会出现错误,如:错误,如:int i=123;long j=i;Java程序设计程序设计 第第2章章 Java语言基础语言基础自动类型转换自动类型转换某班第一次某班第一次Java考试平均分考试平均分81.29,第二次比第一次多,第二次比第一次多2分,计算第二次考试平均分?分,计算第二次考试平均分?double firstAvg=81.29;/第一次平均分第一次平均分 double secondAvg;/第二次平均分第二次平均分
29、int rise=2;secondAvg=firstAvg+rise;System.out.println(第二次平均第二次平均分是:分是:+secondAvg);Java程序设计程序设计 第第2章章 Java语言基础语言基础在某种条件下,系统自动完成类型转换在某种条件下,系统自动完成类型转换 两种类型兼容 例如:int 和 double 兼容 目标类型大于源类型 例如:double 型 大于 int 型 对于表达式对于表达式 如果一个操作数为double型,则整个表达式可提升为double型类型提升规则类型提升规则Java程序设计程序设计 第第2章章 Java语言基础语言基础表达式类型转换和
30、升级表达式类型转换和升级赋值时,右边的数据类型必须小于等于左边的数据赋值时,右边的数据类型必须小于等于左边的数据类型。类型。如果变量的大小(位的个数)至少等于表示式类型如果变量的大小(位的个数)至少等于表示式类型的大小,则可认为表达式赋值是相容的。的大小,则可认为表达式赋值是相容的。byte i,j;short s;i=1;j=1;s=i+j;/非法,非法,+,-,*,/运算后只能是运算后只能是int或或long类型类型例:例:long bigval=6;/6 is int type,OK!int smallval=99L;/99L is long type,illegalJava程序设计程序
31、设计 第第2章章 Java语言基础语言基础 int age=19;char sex=女女;char result=age+sex;下面语句正确吗?下面语句正确吗?int a=10;int b=10.2;double c=10;c=a;int d=c;int 不可以自动转换成不可以自动转换成chardouble不可以自动转化成不可以自动转化成int常见错误常见错误Java程序设计程序设计 第第2章章 Java语言基础语言基础int before=20;/apple笔记本市场份额笔记本市场份额double rise=9.8;/增长的份额增长的份额int now=before+rise;/现在的份额
32、现在的份额int now=before+(int)rise;去年去年Apple笔记本所占的市场份额是笔记本所占的市场份额是20,今年,今年增长的市场份额是增长的市场份额是9.8,求今年所占的份额?,求今年所占的份额?编译出错:不能完成编译出错:不能完成自动类型转换自动类型转换(类型名)表达式(类型名)表达式强制类型转换强制类型转换int b =(int)10.2;double a=10;int c=(int)a;2.3.2 数据类型转换数据类型转换更改为更改为 演示示例:强制类型转换演示示例:强制类型转换 强制类型转换强制类型转换Java程序设计程序设计 第第2章章 Java语言基础语言基础2
33、.3.2 数据类型转换数据类型转换显示转换会出现取模或截断现象显示转换会出现取模或截断现象 如长格式整数强制转换为短格式整数时,将按如长格式整数强制转换为短格式整数时,将按短格式的整数类型的范围取模进行减小短格式的整数类型的范围取模进行减小若浮点类型数据强制转换为整数(或字符类型)若浮点类型数据强制转换为整数(或字符类型)时,要截去小数部分时,要截去小数部分双精度浮点数强制转换为单精度类型时,仅截双精度浮点数强制转换为单精度类型时,仅截取末尾四个字节,数据被破坏取末尾四个字节,数据被破坏由于字符型常量是无符号数,将负整型数据赋值由于字符型常量是无符号数,将负整型数据赋值给字符型常量时,要做强制
34、转换给字符型常量时,要做强制转换Java程序设计程序设计 第第2章章 Java语言基础语言基础强制类型转换的例子强制类型转换的例子public class ChangeTest public static void main(String args)int a=155;int b=9;float c,d;System.out.println(a=+a+,b=+b);c=(float)a/b;System.out.println(a/b=+c);d=a/b;System.out.println(a/b=+d);Java程序设计程序设计 第第2章章 Java语言基础语言基础判断对错判断对错 byt
35、e a=10;float d=46.7f;byte a=1022;float d=23.7;Java程序设计程序设计 第第2章章 Java语言基础语言基础2.4 运算符和表达式运算符和表达式JAVA提供了提供了3大类运算符:大类运算符:一元运算符:带有一个操作数的运算符称为一元运算符:带有一个操作数的运算符称为“一元一元”运算符,例如,运算符,例如,i+。二元运算符:带有两个操作数的运算符称为二元运算符:带有两个操作数的运算符称为“二元二元”运算符,例如,运算符,例如,x+y。三元运算符:带有三个操作数的运算符称为三元运算符:带有三个操作数的运算符称为“三元三元”运算符,在运算符,在JAVA中
36、,只存在中,只存在1个三元运算符,即个三元运算符,即条件运算符条件运算符“?:”。Java程序设计程序设计 第第2章章 Java语言基础语言基础2.4 运算符和表达式运算符和表达式赋值运算符赋值运算符算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符位运算符位运算符移位运算符移位运算符条件运算符条件运算符Java程序设计程序设计 第第2章章 Java语言基础语言基础2.4 运算符和表达式运算符和表达式操作符和表达式Result=number*100变量变量变量变量常量常量操作数表达式操作数和操作符的组合运算符Java程序设计程序设计 第第2章章 Java语言基础语言基础2.4.1 赋
37、值运算符与赋值表达式赋值运算符与赋值表达式当需要为不同的变量赋值时,就必须使用赋值运当需要为不同的变量赋值时,就必须使用赋值运算符算符“=”,这里不是,这里不是“等号等号”的意思,而是的意思,而是“赋值赋值”的意思,例如:的意思,例如:x=29;这个语句的作用是将整数这个语句的作用是将整数29赋给变量赋给变量x,使变量,使变量x此时拥有的值为此时拥有的值为3。Java程序设计程序设计 第第2章章 Java语言基础语言基础 某班的某班的A学员学员Java成绩是成绩是80分,分,B学员与学员与A学员成学员成绩相同,输出绩相同,输出B学员成绩学员成绩int aScore=80;int bScore;
38、aScore =bScore;System.out.println(bScore);bScore =aScore;/将右边的值给左边的变量将右边的值给左边的变量 赋值运算符赋值运算符 aScorebScore8080副副本本2.4.1 赋值运算符与赋值表达式赋值运算符与赋值表达式代码错误代码错误Java程序设计程序设计 第第2章章 Java语言基础语言基础变量名变量名 表达式表达式;2.4.1 赋值运算符与赋值表达式赋值运算符与赋值表达式Z =(X *2)+(5 Y)表达式表达式 表达式表达式 表达式表达式 赋值运算符赋值运算符表达式举例表达式举例Java程序设计程序设计 第第2章章 Java
39、语言基础语言基础2.4.1 赋值运算符与赋值表达式赋值运算符与赋值表达式运运 算算 符符示例表达式示例表达式结结 果果var1=var2;var1被赋予被赋予var2的值的值+var1+=var2;var1被赋予被赋予var1与与var2的和的和var1=var2;var1被赋予被赋予var1与与var2的差的差*var1*=var2;var1被赋予被赋予var1与与var2的乘积的乘积/var1/=var2;var1被赋予被赋予var1与与var2相除所得的结果相除所得的结果%var1%=var2;var1被赋予被赋予var1与与var2相除所得的余数相除所得的余数Java程序设计程序设计
40、第第2章章 Java语言基础语言基础53算术表达式算术表达式用算术运算符和括号将操作数连接起来,求整数或实数运算符的优先级和结合性例int x=20,y=3,z=5;x+y*z (x+y)*z x*-y说明表达式力求简单明了表达式中的变量必须赋值2.4.2 算术运算符与算术表达式算术运算符与算术表达式Java程序设计程序设计 第第2章章 Java语言基础语言基础54算术表达式算术表达式例:若 i=10,i-%50 =?等价于(i-%5)0 public class Test public static void main(String args)int i=10;if(i-%5)0)Syste
41、m.out.println(true);else System.out.println(false);2.4.2 算术运算符与算术表达式算术运算符与算术表达式Java程序设计程序设计 第第2章章 Java语言基础语言基础问题问题?-7/5 =-7%5=7%-5 =5.5%1.0=-1-220.5Java程序设计程序设计 第第2章章 Java语言基础语言基础56自增、自减运算符自增、自减运算符变量赋值,一元运算符变量赋值,一元运算符自增运算符自增运算符(+)、自减运算符、自减运算符(-)int i=5;i+;+i;i-;-i;“赋值”和“运算”的先后顺序int i=10;int n=i+%5;i
42、nt x=7,y=15,v1,v2;v1=x+;v2=+y;int i=10;int n=+i%5;x=8 y=16v1=7 v2=16i=11,n=0i=11,n=1Java程序设计程序设计 第第2章章 Java语言基础语言基础int num1=5;int num2=2;int a=num1%num2;int b=num1/num2;System.out.println(num1+%+num2+=+a);System.out.println(num1+/+num2+=+b);num1+;num2-;System.out.println(num1=+num1);System.out.print
43、ln(num2=+num2);5%2=15/2=2下面代码片断的输出结果是什么?下面代码片断的输出结果是什么?输出输出%:求商:求商/:求余数:求余数等价于:等价于:num1=num1+1;等价于:等价于:num2=num2-1;num1=6num2=1输出输出算术运算符算术运算符Java程序设计程序设计 第第2章章 Java语言基础语言基础 int age=19;char sex=女女;char result=age+sex;下面语句正确吗?下面语句正确吗?int a=10;int b=10.2;double c=10;c=a;int d=c;int 不可以自动转换成不可以自动转换成char
44、double不可以自动转化成不可以自动转化成int常见错误常见错误Java程序设计程序设计 第第2章章 Java语言基础语言基础比较高低、大小、长短比较高低、大小、长短张三的考试成绩是否比李四高张三的考试成绩是否比李四高大象是否比乌龟更长寿大象是否比乌龟更长寿篮球跟地球一样大吗篮球跟地球一样大吗如何比较?如何比较?使用使用关系运算符关系运算符可以比较高低、大小、长短可以比较高低、大小、长短为什么使用关系运算符为什么使用关系运算符Java程序设计程序设计 第第2章章 Java语言基础语言基础2.4.3 关系运算符与关系表达式关系运算符与关系表达式常用的关系运算符有哪些:常用的关系运算符有哪些:,
45、=,=大象的寿命大象的寿命 李四的成绩李四的成绩 假假令狐冲每次考试成绩令狐冲每次考试成绩=90分分 真真篮球的大小篮球的大小=地球的大小地球的大小 假假由此看出由此看出关系运算符关系运算符的作用:的作用:用来做比较运算用来做比较运算比较后结果:比较后结果:boolean类型类型优先级(、=、(=、!=)关系运算符低于算术运算符Java程序设计程序设计 第第2章章 Java语言基础语言基础61关系运算符关系运算符(Relational Operators)2.4.3 关系运算符与关系表达式关系运算符与关系表达式class Test public static void main(String
46、args)int w=25,x=3;boolean y=w=w*2 x*9;boolean cc=b a;System.out.println(“w b;a+bb-c;(a=3)(b=5);ba;返回结果为一个布尔类型的值例若 int a=3,b=2,c=1;boolean d,f;d=ab;f=(a+b)(b+5);d=abc;?2.4.3 关系运算符与关系表达式关系运算符与关系表达式Java程序设计程序设计 第第2章章 Java语言基础语言基础63逻辑运算符逻辑运算符(Logical Operators)操作数的逻辑关系,计算结果“true”或“false”逻辑与&“op1&op2”1.操
47、作数都为真“true”,结果为真“true”2.否则结果为假“false”逻辑或|“op1|op2”1.有一个操作数为真“true”,结果为真“true”2.否则结果为假“false”逻辑非 !“!op”1.取反,操作数为真“true”,结果为假“false”,反之例:0=index&index (&)(|)(!)算术运算符关系运算符(&)(|)2.4.4 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式Java程序设计程序设计 第第2章章 Java语言基础语言基础64逻辑表达式逻辑表达式用逻辑运算符将用逻辑运算符将关系表达式关系表达式和和布尔值布尔值连接连接起来的式子起来的式子例例int x=2
48、3,y=98;boolean a=true,b=false,c,d;c=(xy)&a;d=!a&(x=y);2.4.4 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式Java程序设计程序设计 第第2章章 Java语言基础语言基础65逻辑表达式逻辑表达式例:闰年(leap year)A year in the Gregorian calendar having 366 days,with the extra day,February 29,intercalated to compensate for the quarter-day difference between an ordinary ye
49、ar and the astronomical year.条件符合下例两者之一1.能被4整除,但不能被100整除2.能被4整除,又能被400整除(year%4=0&year%100!=0)|year%400=0(year%4!=0)|(year%100=0&year%400!=0)2.4.4 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式Java程序设计程序设计 第第2章章 Java语言基础语言基础2.4.5 位运算符位运算符位运算符位运算符(Bitwise Operators)1.按位取反 “op2”2.按位与&“op1&op2”3.按位或|“op1|op2”4.按位异或 “op1 op2”通
50、常:操作数为整数Java程序设计程序设计 第第2章章 Java语言基础语言基础2.4.5 位运算符位运算符按位取反按位取反 “op2”对操作数的每一个二进制位进行“取反”操作int a=42;int aa=a;System.out.println(“aa=”+aa);42 00000000 00000000 00000000 00101010 -43 11111111 11111111 11111111 11010101Java程序设计程序设计 第第2章章 Java语言基础语言基础2.4.5 位运算符位运算符按位与按位与&“op1&op2”将操作数的对应位逐位进行位逻辑与运算1 1 1,其余为