版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第第 2 章章 Java基础基础2.1 标识符和关键字标识符和关键字2.2 2.3 数据类型与常量、变量数据类型与常量、变量2.4 运算符运算符2.5 表达式表达式2.4 程序控制语句程序控制语句2Java 标识符标识符标识符是用来标识标识符是用来标识变量、常量、方法、类、对象变量、常量、方法、类、对象等元等元素的有效字符序列素的有效字符序列标识符由字母、数字、标识符由字母、数字、_和和$组成组成,长度不限,但实际,长度不限,但实际命名不宜过长命名不宜过长标识符的第一个字符必须为字母、标识符的第一个字符必须为字母、 “_”或或 “$” l不能以数字开头不能以数字开头 标识符区分字母大小写标
2、识符区分字母大小写l如:如:Hello 和和 hello 是两个不同的标识符是两个不同的标识符 3Java 标识符举例标识符举例合法的标识符合法的标识符names_no $2a boy_numberA98 _abc _88非法的标识符非法的标识符2ya*bw/A-43_1 the% trueclassstatic4标识符的约定标识符的约定“见名知意见名知意”规范大小写的使用方式规范大小写的使用方式l变量名、对象名、方法名、包名以小写字母开头变量名、对象名、方法名、包名以小写字母开头l类名首字母大写类名首字母大写l标识符由多个单词构成,则标识符由多个单词构成,则首字母小写,其后单首字母小写,其后
3、单词的首字母大写,其余字母小写词的首字母大写,其余字母小写。如。如 getAgel常量名全部字母大写常量名全部字母大写约定:约定:非强制性非强制性5Java 关键字关键字关键字是由关键字是由Java语言定义的、具有特殊含义语言定义的、具有特殊含义的的字符序列字符序列用户只能按照系统规定的方式使用,不能自用户只能按照系统规定的方式使用,不能自行定义行定义关键字一律用关键字一律用小写字母小写字母表示表示如:如:public class static void int float if else 2.1.2 P.146Java 注释注释注释是程序中的说明性文字注释是程序中的说明性文字是程序的非编译执
4、行部分是程序的非编译执行部分注释的作用注释的作用l给程序添加说明,增加程序的可读性给程序添加说明,增加程序的可读性 注释的形式注释的形式l / 注释部分注释部分 (单行)(单行)l /* 注释部分注释部分 */ (多行,块注释)(多行,块注释)l /* 注释部分注释部分 */ (文档注释)(文档注释)72.2,3 基本数据类型基本数据类型 、常量和变量常量和变量数据类型数据类型:java 是一种强类型语言是一种强类型语言l决定数据的表示方式、取值范围、可进行的操作决定数据的表示方式、取值范围、可进行的操作Java数据类型数据类型l基本数据类型基本数据类型u简单数据组成的数据类型,数据是不可分解
5、的简单数据组成的数据类型,数据是不可分解的u有整数、小数、字符等有整数、小数、字符等l引用数据类型引用数据类型:都是用类或者对象定义的都是用类或者对象定义的82.3 基本数据类型基本数据类型数据类型数据类型l决定数据的表示方式、取值范围、可进行的操作决定数据的表示方式、取值范围、可进行的操作Java数据类型数据类型l基本数据类型基本数据类型u简单数据组成的数据类型,数据是不可分解的简单数据组成的数据类型,数据是不可分解的u有整数、小数、字符等有整数、小数、字符等l引用数据类型引用数据类型:都是用类或者对象定义的都是用类或者对象定义的9Java 数据类型数据类型Java 数据类型数据类型基本类型
6、基本类型整数型整数型 浮点数型浮点数型 字符型字符型 布尔型布尔型 引用类型引用类型数组数组 Array接口接口 Interface类类 Class10整数类型整数类型整型有整型有4种,差别是种,差别是l占用的内存空间占用的内存空间l数据的取值范围数据的取值范围 数据类型数据类型所占字节所占字节取值范围取值范围long ( 长整型长整型 )8-92233720368547758089223372036854775807 (-263263-1)int ( 整型整型 )4-21474836482147483647 (-231231-1)short ( 短整型短整型)2-3276832767 (-2
7、15215-1)byte (位位, 字节字节 )1-128127 (-2727-1)11整数类型整数类型整数的整数的默认类型默认类型为为 int 型型l要表示整数要表示整数为为 long 型型,在其后加,在其后加L或或ll如:如:345 是是 int 型,型,345L是是long 型型整数的整数的3种进制种进制l十进制数十进制数09表示的数,表示的数,首位不能为首位不能为0l八进制数八进制数07表示的数,以表示的数,以 0 为前缀为前缀l十六进制数十六进制数 09,af 或或AF之间的字母表示的数,之间的字母表示的数,以以 0 x 或或 0X 为前缀为前缀l如:如:十进制数十进制数 58 的六
8、种表示方式的六种表示方式 58072 0 x3a 0 x3A 0X3a 0X3A 12浮点数类型浮点数类型浮点数就是带小数点的数浮点数就是带小数点的数 浮点数表示形式浮点数表示形式l标准记数法标准记数法u由整数部分、小数点和小数部分组成由整数部分、小数点和小数部分组成u如:如:12.37-0.456l科学记数法科学记数法(指数形式)(指数形式)u由尾数、由尾数、E或或e 及阶码组成及阶码组成u如:如:2.5E4 表示表示 2.5104 3.12e-5 表示表示 3.1210-5浮点数类型浮点数类型lfloat单精度浮点数单精度浮点数(有效精度(有效精度6位)位)ldouble 双精度浮点数双精
9、度浮点数(有效精度(有效精度6位)位)13浮点数类型浮点数类型取值范围及占用的内存大小取值范围及占用的内存大小浮点数类型浮点数类型所占字节所占字节取值范围取值范围float(单精度浮点数)(单精度浮点数)4-3.4E383.4E38double(双精度浮点数)(双精度浮点数)8-1.7E3081.7E308浮点数浮点数默认默认类型为类型为double要表示浮点数为要表示浮点数为 float 型,加后缀型,加后缀F或或f如:如: 34.5 34.5d 是是 double 型型34.5f 是是 float 型型14字符类型字符类型字符类型字符类型 charlUnicode字符,字符,1个字符占个字
10、符占16位位字符类型数据的表示方法字符类型数据的表示方法l单引号括起来的单个字符,如:单引号括起来的单个字符,如:A a 8 # l用用Unicode码表示,前缀是码表示,前缀是“ u ” 如:如:u0043 表示表示 C 说明:说明: Unicode码用码用4位位十六进制数表示,十六进制数表示,“0043”就是十进制数就是十进制数67 u0000 uffff 可表示所有可表示所有Unicode字符字符 转义字符转义字符l如:如: n l符号的意义被转换了符号的意义被转换了l表示不能从键盘输入的控制字符表示不能从键盘输入的控制字符15转义字符转义字符转义字符转义字符功能功能Unicode码码十
11、进制数十进制数b退格退格u00088t制表符制表符u00099n换行换行u000a10f换页换页u000c12r回车回车u000d13u002739u002234u005c9216字符串字符串字符串字符串 String (这是一个类这是一个类)l由多个字符组成的字符序列由多个字符组成的字符序列l字符串用字符串用双引号双引号括起来括起来如:如:green 123 How are you! a l字符串中可包含转义字符字符串中可包含转义字符如:如:夕阳无限好夕阳无限好 只是只是n 近黄昏近黄昏 结果结果 :夕阳无限好夕阳无限好 只是只是 近黄昏近黄昏又如:又如:ab12字符字符 结果结果 :ab1
12、2字符字符17布尔类型布尔类型布尔类型布尔类型 booleanl逻辑类型,表示逻辑量逻辑类型,表示逻辑量l占占1个字节个字节l2个值个值utrue(真)(真)ufalse(假)(假)布尔值是逻辑运算的结果布尔值是逻辑运算的结果18关键字关键字 数据类型数据类型 所占字节所占字节取值范围取值范围long长整型长整型8- 263 263-1int整型整型4- 231 231-1short短整型短整型2-3276832767 (- 215 215-1)byte字节字节1-128127 (- 27 27-1)char字符字符2065535 ( 216-1)boolean布尔布尔1true 或或 fal
13、sefloat单精度单精度4-3.4E38 3.4E38double双精度双精度8-1.7E308 1.7E308Java数据基本类型数据基本类型19常量常量常量常量l程序运行过程中其值始终保持不变的量程序运行过程中其值始终保持不变的量l类似于数学中的类似于数学中的“常数常数”,如:,如:y = 3x + 5l有两种:有两种:直接常量直接常量和和符号常量符号常量直接常量的类型直接常量的类型l整数型,如:整数型,如:26 032 0 x1a 26L l浮点数型,如:浮点数型,如: 47.3 47.3d 47.3fl字符型,如:字符型,如: a A 5 好好l布尔型,如:布尔型,如: true f
14、alsel字符串型,如:字符串型,如:A student 3090102300 空格串空格串 空串空串 20符号常量符号常量用标识符表示常量,称为符号常量用标识符表示常量,称为符号常量例:计算圆的周长和面积例:计算圆的周长和面积perimeter = 2*3.14159*r;area = 3.14159*r*r; 用用 PI 表示表示 3.14159 final float PI = 3.14159f f;声明符号常量声明符号常量PIperimeter = 2*PI*r;area = PI*r*r;符号常量必须先声明,后使用符号常量必须先声明,后使用21符号常量符号常量符号常量的声明符号常量的
15、声明final final 类型标识符类型标识符 常量名常量名= (= (直接直接) )常量;常量;l类型标识符:基本数据类型类型标识符:基本数据类型l常量名大写常量名大写例如例如lfinal float PI=3.14159final float PI=3.14159f f; ; /PI是一个浮点常量是一个浮点常量lfinal char SEX=final char SEX=MM; ; /SEX是一个字符常量是一个字符常量lfinal int MAX=100;final int MAX=100;/MAX是一个整型常量是一个整型常量22符号常量的优点符号常量的优点增加程序的可读性增加程序的可读
16、性l从常量名可知常量的含义从常量名可知常量的含义增强程序的可维护性增强程序的可维护性l只要在声明处修改常量的值,就自动修改了程序只要在声明处修改常量的值,就自动修改了程序中所有地方所使用的常量值中所有地方所使用的常量值l如:如:final float PI = 3.14159f;perimeter = 2*PI*r; area = PI*r*r;只需修改这里只需修改这里23变变 量量变量是指程序运行中其值可以改变的量变量是指程序运行中其值可以改变的量l变量的变量的3个要素:个要素:变量名、类型、值变量名、类型、值l如:如: byte x=1;/ x为字节型变量,初值为为字节型变量,初值为1变量
17、和内存的关系变量和内存的关系l对应内存空间中的一个或几个单元对应内存空间中的一个或几个单元l变量名变量名就是给对应的内存单元取的名称就是给对应的内存单元取的名称l变量的变量的值值存放在对应的内存单元中存放在对应的内存单元中l程序中按变量名区分程序中按变量名区分1变量必须先声明(定义)后使用变量必须先声明(定义)后使用24变变 量量定义变量定义变量【修饰符修饰符】类型标识符类型标识符 变量名变量名=常量常量;l修饰符:修饰符:public,private,protected,defaultl类型标识符:基本数据类型或引用数据类型类型标识符:基本数据类型或引用数据类型l变量名必须符合标识符的规定,
18、一般小写变量名必须符合标识符的规定,一般小写l声明同类型的多个变量,用逗号分隔声明同类型的多个变量,用逗号分隔 int a,b;l包含包含“=常量常量”部分,此常量为变量的初始值部分,此常量为变量的初始值注意:常量的类型必须与类型标识符相匹配注意:常量的类型必须与类型标识符相匹配25变变 量量例:例:float x=25.4f, y; / x、y为浮点型变量,为浮点型变量,x初值为初值为25.4char c; / c 为字符型变量为字符型变量boolean flag1=true, flag2; / 布尔型变量布尔型变量int n, m; / 整型变量整型变量区别以下内容区别以下内容a aa 字
19、符常量字符常量字符串常量字符串常量变量变量26【例例2-1】使用整数型变量使用整数型变量不加不加“L”行吗?行吗?“+” 表示字符串连接表示字符串连接27【例例2-1】结果结果程序运行结果:程序运行结果:a=13 b=20 c=37x=30 y=12345628【例例2-2】使用浮点型变量使用浮点型变量程序运行结果:程序运行结果:a=35.45b=3.56E18为什么加为什么加“ f ”?29【例例2-3】使用字符类型变量使用字符类型变量程序运行结果:程序运行结果:ch1=a ch2=B30【例例2-4】使用字符串类型数据使用字符串类型数据程序运行结果:程序运行结果:str1=abc str3
20、=123str1=abcnstr3=12331【例例2-5】使用逻辑类型变量使用逻辑类型变量程序运行结果:程序运行结果:逻辑状态逻辑状态1=true 逻辑状态逻辑状态2=false 32关键字关键字 数据类型数据类型所占字节所占字节初始值初始值long长整型长整型80Lint整型整型40short短整型短整型2(short)0byte字节字节1(byte)0char字符字符2u0000boolean布尔布尔1falsefloat单精度单精度40.0Fdouble双精度双精度80.0D各种类型变量的初始值各种类型变量的初始值33数据类型转换数据类型转换自动类型转换自动类型转换l两种类型是兼容的,
21、并且目的数据的类型范围比两种类型是兼容的,并且目的数据的类型范围比源数据类型的范围大时,能够自动转换源数据类型的范围大时,能够自动转换lbyte ,short,char intlint longllong floatlfloat double 34数据类型转换数据类型转换强制类型转换强制类型转换l高级数据类型转换为低级数据类型时,要求必须在高级数据类型转换为低级数据类型时,要求必须在程序中显式写出转换类型程序中显式写出转换类型l例如例如 byte i=(byte)1234; int i=(int)1234L;352.4 运算符运算符运算符运算符l表示各种运算的符号表示各种运算的符号l参与运算的
22、数据称为操作数参与运算的数据称为操作数运算符的分类运算符的分类1. 根据操作数的个数分根据操作数的个数分l单目运算单目运算只有一个操作数只有一个操作数 例如:例如:+,-l双目运算双目运算有两个操作数有两个操作数 例如:例如:+,-l多目运算符多目运算符 多个操作数多个操作数 例如:条件运算符例如:条件运算符 ? :362.3 运算符和表达式运算符和表达式2. 根据运算性质分根据运算性质分l算术运算符算术运算符 + (加加)、- (减减) 、* (乘乘) 、/(除除) %(求余数求余数)、+、-l关系运算符关系运算符 、 = ab如果如果ab成立,结果为成立,结果为true;否则,结果为;否则
23、,结果为false=a=b如果如果ab成立,结果为成立,结果为true;否则,结果为;否则,结果为false ab如果如果ab成立,结果为成立,结果为true;否则,结果为;否则,结果为false=a10.4 45!=45 76 true!=false Ta utalk/ 结果是结果是true/ 结果是结果是false/ 结果是结果是false/ 结果是结果是true/ 结果是结果是true/ 结果是结果是false/ 结果是结果是false/ 错误错误,字符串不能使用运算符,字符串不能使用运算符“”45逻辑运算符逻辑运算符逻辑运算逻辑运算l运算对象为布尔型数据运算对象为布尔型数据l运算结果仍
24、是布尔值运算结果仍是布尔值逻辑运算符逻辑运算符l! (非非):!a a为为true,结果为,结果为false,a为为false,结果为,结果为truel& (条件与条件与):a & bl| (条件或条件或):a | b46逻辑运算真值表逻辑运算真值表ab!aa&b, a&ba|b, a|babfalse falsetruefalsefalsefalsefalse truetruefalsetruetruetrue false falsefalsetruetruetrue truefalsetruetruefalse47逻辑运算举例逻辑运算举例l(34b) /结果是结果是false,短路计算短路
25、计算l(3421)|(a=b) /结果是结果是true,短路计算短路计算48逻辑运算的用途逻辑运算的用途应用举例:判断组合条件是否满足应用举例:判断组合条件是否满足l(age20)&(age=0) &(ch=A) &(ch=a) &(ch=z) 判断字符变量判断字符变量ch是否为小写字母是否为小写字母49赋值运算符赋值运算符赋值运算符赋值运算符 = 赋值运算赋值运算l用于给变量赋值用于给变量赋值l形式:形式: 变量名变量名=表达式;表达式;l如:如:y=x*2;l运算次序:运算次序:从右向左从右向左即先计算表达式的值,再将表达式的值赋给变量即先计算表达式的值,再将表达式的值赋给变量50赋值运算
26、符赋值运算符例例 int i=3, j; / i的初始值是的初始值是3 j=i+2; / 结果,结果,j的值是的值是5 i=2*j; / 结果,结果,i的值是的值是10 j=j+4; / 结果,结果,j的值是的值是9j=i;/ 结果,结果,j的值是的值是10i+2=j;/ 错误,不能为运算式赋值错误,不能为运算式赋值i=j=8;/右结合规律右结合规律 先计算先计算 j=8,再计算,再计算 i=j51复合赋值运算符复合赋值运算符由由赋值赋值运算符与运算符与算术算术运算符、运算符、逻辑逻辑运算符和运算符和位位运算符运算符组合而成组合而成运算符运算符用例用例等价于等价于运算符运算符用例用例等价于等价
27、于+=x += yx=x+y&=x &= yx=x&y-=x-= yx=x-y|=x |= yx=x|y*=x*= yx=x*y=x = yx=xy/=x /= yx=x/y=x = yx=x=x = yx=xy=x = yx=xy52应用举例应用举例i*=10; k+=8;x/=3; y*=x+2;a=i+;a=+i;a=i-;a=-i;等价于等价于i=i*10;等价于等价于k=k+8;等价于等价于x=x/3;等价于等价于y=y*(x+2);等价于等价于 a=i;i+; 先赋值再自加先赋值再自加等价于等价于 i+; a=i; 先自加再赋值先自加再赋值等价于等价于 a=i;i-; 先赋值再自减
28、先赋值再自减等价于等价于 i-; a=i; 先自减再赋值先自减再赋值53【例例2-6】+、- 使用实例使用实例 P.25i+=15+i=17-i=16i-=16i=1554条件运算符条件运算符条件运算符条件运算符? : l三目运算符三目运算符l格式格式 ? : 功能功能l如果如果的值是的值是true,取,取的值的值l如果如果的值是的值是false,取,取的值的值例例 int min, x=4, y=20; min = (xy) ? x : y;因为因为 xy 这个条件是成立的,所以取这个条件是成立的,所以取 ?后的变量后的变量x的值,即的值,即min的值是的值是4如果如果x=0) ? a :
29、-a;55括号运算符括号运算符括号运算符括号运算符 ()()l改变表达式中运算符的运算次序改变表达式中运算符的运算次序l先进行括号内的运算,再进行括号外的运算先进行括号内的运算,再进行括号外的运算l多层括号的情况下,先内后外逐层运算多层括号的情况下,先内后外逐层运算l如:如:21-(2+3*(1+2)562.5表达式表达式表达式表达式是是用用运算符将操作数连接起来运算符将操作数连接起来的符合的符合语法规则的式子语法规则的式子l操作数可以是常量、变量等操作数可以是常量、变量等l变量要先赋值变量要先赋值l一个常量或一个变量是最简单的表达式一个常量或一个变量是最简单的表达式 例例int i=5, j
30、=10, k;k=(24+3*i)*j; k=100;k=j;这是表达式这是表达式这些也是表达式这些也是表达式57 运算符的优先级运算符的优先级运算符运算符描述描述优先级优先级结合性结合性. ( ) 域,数组,括号域,数组,括号1从左至右从左至右+ - - ! 一元运算符一元运算符2从右至左从右至左* / %乘,除,取余乘,除,取余3从左至右从左至右+ - 加,减加,减4从左至右从左至右 位运算位运算5从左至右从左至右 =关系运算关系运算6从左至右从左至右= !=关系运算关系运算7从左至右从左至右&按位与按位与8从左至右从左至右按位异或按位异或9从左至右从左至右|按位或按位或10从左至右从左至
31、右58 续前表续前表运算符运算符描述描述优先级优先级结合性结合性&逻辑与逻辑与11从左至右从左至右|逻辑或逻辑或12从左至右从左至右? :条件运算条件运算13从右至左从右至左= = * *= /= %= += -= = /= %= += -= = = = &= = |= &= = |= 赋值和复合运算赋值和复合运算14从右至左从右至左59表达式的数据类型表达式的数据类型表达式将得到一个结果,这个结果的数据类型就是表表达式将得到一个结果,这个结果的数据类型就是表达式数据类型达式数据类型例例 int i=3, j=21, k; boolean f; k=(i+3)*4; f=(i*2)j; Str
32、ing s=abc+123;这是算术表达式这是算术表达式这是布尔表达式这是布尔表达式这是字符串表达式这是字符串表达式60【例例2-7】整数相除整数相除 P.27运行结果运行结果k=3f1=3.0f2=3.7561字符的计算字符的计算字符加字符加(减减)一个整数一个整数设设char ch= m m的的unicode编码为编码为109 lch-1 为为108 lch+1 为为110l(char)(ch+1) 为为n两个字符相减两个字符相减la-A32l m -n -1 课本课本 P18 例子例子62 2.6Java流程控制流程控制3.1语句及程序结构语句及程序结构3.2顺序结构顺序结构3.3选择结
33、构选择结构3.4循环结构循环结构3.5跳转语句跳转语句63 3.1 语句及程序结构语句及程序结构语句语句l向计算机系统发出操作指令的代码向计算机系统发出操作指令的代码l程序由一系列语句组成程序由一系列语句组成Java语句类型语句类型l表达式语句表达式语句 表达式;表达式;l空语句空语句只有一个只有一个“;”l复合语句复合语句u用用 “ ”将多条语句括起来作为一条语句使用将多条语句括起来作为一条语句使用l方法调用语句方法调用语句l控制语句控制语句:包括选择语句、循环语句、转移语句:包括选择语句、循环语句、转移语句64Java 语句类型举例语句类型举例65从键盘输入从键盘输入输出输出System.
34、out标准输出流标准输出流l输出数据的输出数据的Method :print() println() l使用:使用:System.out.println(Hello!);Java控制台输入控制台输入 lScanner 类类 输入输入l命令行参数命令行参数l直接从键盘输入直接从键盘输入66Java 控制台输入控制台输入Scanner类类l属于属于Java标准输入流标准输入流 System.inl在程序顶部加上语句,引入在程序顶部加上语句,引入Java工具包工具包 import java.util.*; 或或import java.util.Scanner;如何使用标准输入流如何使用标准输入流l先定
35、义一个先定义一个Scanner类的对象类的对象Scanner in = new Scanner(System.in);(标识符(标识符 in 可以使用其它名字)可以使用其它名字)l再使用再使用Scanner类提供的类提供的Method67Scanner 对象的对象的MethodScanner 对象从控制台读取对象从控制台读取字符字符或或字符串字符串nextl输入一个单词,以空格结束,最后以回车结束输入一个单词,以空格结束,最后以回车结束nextLinel输入一个语句,以回车结束输入一个语句,以回车结束68Scanner 对象读取各类数据的对象读取各类数据的Method读取整型数读取整型数lin
36、t a=in.nextInt(); 读取浮点数读取浮点数lfloat b=in.nextFloat(); 读取双精度数读取双精度数ldouble c=in.nextDouble(); 读取字符串读取字符串lString s=in.nextLine();也可分成两条语句:也可分成两条语句: int a; a=in.nextInt();69Example70命令行参数的输入命令行参数的输入说明说明l2.0 作为第作为第1个参数传递给个参数传递给args0l6.0 作为第作为第2个参数传递给个参数传递给args171命令行参数的输入命令行参数的输入在在DOS下运行程序下运行程序l设置设置Java的路
37、径的路径l将将Root.java复制到指定目录下复制到指定目录下l进入命令提示符进入命令提示符 l切换当前目录为指定目录切换当前目录为指定目录l编译:编译:javac Root.java1.执行:执行:java Root 2.0 6.072命令行输入命令行输入命令行输入的第一个数命令行输入的第一个数la=Float.parseFloat (args0);l转换为浮点数转换为浮点数命令行输入的是字符串数据,需要转换为计算所需要命令行输入的是字符串数据,需要转换为计算所需要的数据类型的数据类型将命令行第将命令行第i个输入转换为以下类型的数据个输入转换为以下类型的数据l整型整型 a=Integer.
38、parseInt(argsi);l短整型短整型a=Short.parseShort(argsi);l单精度浮点单精度浮点 a=Float.parseFloat(argsi);l双精度浮点双精度浮点 a=Double.parseDouble(argsi)73程序结构程序结构程序的程序的3种基本结构种基本结构l 顺序结构顺序结构 l 分支结构分支结构if 语句、语句、 switch 语句语句l 循环结构循环结构while 语句、语句、 dowhile 语句、语句、 for 语句语句 74 顺序结构顺序结构最简单的一种程序结构最简单的一种程序结构程序的执行顺序程序的执行顺序l语句的书写顺序语句的书写
39、顺序程序的基本顺序程序的基本顺序l数据输入(定义变量、变量赋初值)数据输入(定义变量、变量赋初值)l处理数据(计算)处理数据(计算)l输出结果输出结果75选择结构选择结构选择结构,也叫分支结构选择结构,也叫分支结构l根据根据给定的条件给定的条件来决定执行不同的程序段来决定执行不同的程序段Java选择语句选择语句lif 语句语句 二选一二选一lswitch 语句语句 多选一多选一76if 语句语句格式格式1if (布尔表达式布尔表达式) 语句语句格式格式2if (布尔表达式布尔表达式) 语句语句1else语句语句2布尔表达式布尔表达式语句语句2falsetrue语句语句1布尔表达式布尔表达式语句
40、语句truefalse77if 语句语句格式格式1if (布尔表达式布尔表达式) 语句语句布尔表达式布尔表达式语句语句2falsetrue语句语句1布尔表达式布尔表达式语句语句truefalse格式格式2if (布尔表达式布尔表达式) 语句语句1else语句语句278if 语句例子语句例子1. 如果如果星期天不下雨,去西湖划船,否则去茶楼喝茶。星期天不下雨,去西湖划船,否则去茶楼喝茶。if (星期天不下雨星期天不下雨) 划船划船;else喝茶喝茶;if 语句可以写成一行或两行语句可以写成一行或两行if(x=0) y=x;else y=-x; 或:或:if(x=0) y=x; else y=-x
41、;2. 求求y= =|x| if (x=0) y=x; elsey=-x;或:或: if (星期天下雨星期天下雨) 喝茶喝茶;else划船划船; 79if 语句例子语句例子3. 找出找出a 和和b两数中的大数两数中的大数, 放到放到max中中if (a=b) max=a;else max=b;或或 max=a; if (maxb) max=b; 4. 找出找出a、b 和和 c 三个三个数中的数中的最最大数大数,放到,放到max中中 max=a;if (maxb) max=b; if (maxb) min=b; if (minc) min=c;80if 语句例子语句例子5. 判断一个数判断一个数
42、 n 是奇数还是偶数是奇数还是偶数if (n%2=0)System.out.println(n+is even.);elseSystem.out.println(n+is odd.);81通过命令行输入通过命令行输入2个整数,输出较小者。个整数,输出较小者。82改成从键盘输入改成从键盘输入2个整数个整数83改成从键盘输入改成从键盘输入2个整数个整数输入:输入:1 2输出:输出:x=1 y=2min=184if 语句嵌套语句嵌套在在if 语句中包含语句中包含 if 语句,就形成嵌套语句,就形成嵌套l当由当由多个条件多个条件来决定执行不同的程序段时使用来决定执行不同的程序段时使用格式格式if(布尔
43、表达式(布尔表达式1)语句语句1else if(布尔表达式(布尔表达式2)语句语句2 else if(布尔表达式(布尔表达式3) 语句语句3 else if(布尔表达式(布尔表达式n) 语句语句nelse 语句语句n+185嵌套的嵌套的if 语句需注意语句需注意if 与与 else 的配对原则的配对原则lelse总是与总是与离它最近离它最近、未匹配过未匹配过的的if 配对配对l如果需要,可以使用如果需要,可以使用“ ”实现实现例例c=99 c=0if (a0) if (b0) c=100; else;else c=99;c=086switch语句语句switch(表达式表达式) case 常量
44、常量1: 语句序列语句序列1; break; case 常量常量2: 语句序列语句序列2; break; case 常量常量n: 语句序列语句序列n; break; default: 语句序列语句序列n+1;if 语句中,布尔表达式的值只能有两种:语句中,布尔表达式的值只能有两种:true 或或 false若情况更多时,需要提供更多的选择:使用若情况更多时,需要提供更多的选择:使用switch语句语句/ 计算表达式,得到值计算表达式,得到值/ 如果表达式值为常量如果表达式值为常量1,执行语句序列,执行语句序列1/ 终止,结束终止,结束switch 语句语句/ 如果表达式值为常量如果表达式值为常
45、量2,执行语句序列,执行语句序列2 / 终止,结束终止,结束switch 语句语句/ 如果表达式值为常量如果表达式值为常量n,执行语句序列,执行语句序列n / 终止,结束终止,结束switch 语句语句 /如果表达式值与常量如果表达式值与常量1常量常量n都不同,都不同,执行语句序列执行语句序列n+1 87Switch语句执行流程语句执行流程计算计算 值值=常量常量1?语句块语句块1; break; 语句块语句块2 ; break; 语句块语句块n ; break; 语句块语句块n+1=常量常量2?=常量常量n?truetruetruedefaultfalsefalse88switch 语句注意
46、点语句注意点表达式的数据类型必须是表达式的数据类型必须是byte,char,short,int case 子句中的值必须是常量,子句中的值必须是常量,而且互不相同而且互不相同 break 语句语句用来终止用来终止switch 语语句的执行,即在执行完一个句的执行,即在执行完一个case 分支后,使程序跳出分支后,使程序跳出switch 语句语句 switch(表达式表达式) case 常量常量1: 语句序列语句序列1; break; case 常量常量2: 语句序列语句序列2; break; case 常量常量n: 语句序列语句序列n; break; default: 语句序列语句序列n+1;
47、89【例例3-7】通过通过 命令行输入命令行输入112之间的一个整数,输出相应月之间的一个整数,输出相应月份的英文单词。份的英文单词。 3.下列语句序列执行后,下列语句序列执行后,k 的值是的值是( )。 int x = 6, y = 10, k = 5; switch (x % y) case 0:k = x * y;case 6:k = x / y;case 12:k = x - y;default:k = x * y - x; A) 60 B) 5 C) 0 D) 5490 switch (5) default:System.out.print(5); case 0:System.out
48、.print(0); case 1:System.out.print(1);break;case 2:System.out.print(2);break; A) 1 B) 5 C) 0 D) 5019192【例例3-8】成绩转化成绩转化将百分制成绩转化为优秀、良好、中等、及格和不及将百分制成绩转化为优秀、良好、中等、及格和不及格的格的5级制成绩。级制成绩。转化标准转化标准l优秀:优秀:90100分分l良好:良好:8089分分l中等:中等:7079分分l及格:及格:6069分分l不及格:不及格:60分以下分以下思路思路l第一步:将百分制划分等级第一步:将百分制划分等级l第二步:将等级对应的中文字
49、符输出第二步:将等级对应的中文字符输出 构造表达式构造表达式 (grade/10)l10010l90999l80898l70797l60696l50595l40494l30393l20292l10191l090优秀优秀优秀优秀良好良好中等中等及格及格不及格不及格不及格不及格不及格不及格不及格不及格不及格不及格不及格不及格93public class Score public static void main(String args)int s=Integer.parseInt(args0);int x=s/10; switch (x) case 0: case 1: case 2: case
50、3: case 4: case 5: System.out.println(D);break;case 6: System.out.println(C);break;case 7: case 8: if (s 85) System.out.println(B); break; case 9: case 10: System.out.println(A); 94实验示例实验示例(程序填空程序填空)输入输入n表示做表示做n次下面的操作:次下面的操作: 输入两个正整数,输出它们的和。输入两个正整数,输出它们的和。 例:例: 输入:输入:2 /表示表示n=2,做两次操作,做两次操作 10 11 20
51、30 输出:输出: sum=21sum=50 import java.util.Scanner;public class Test10097 public static void main(String args) int n,a,b,i,sum;Scanner in=new Scanner(System.in);n=in.nextInt(); /输入输入nfor(i=1; i=n; i+) /*-*/System.out.println(sum=+sum);a=in.nextInt(); /输入输入ab=in.nextInt(); /输入输入bsum=a+b; /计算和计算和953.4 循环
52、结构循环结构循环结构程序循环结构程序l在一定在一定条件条件下,下,反复执行反复执行一段程序代码一段程序代码l被反复执行的程序代码称为被反复执行的程序代码称为循环体循环体Java 循环语句循环语句lwhile 语句语句ldowhile 语句语句lfor 语句语句 96for 语句语句格式格式for ( 表达式表达式1; 表达式表达式2; 表达式表达式3 ) 循环体循环体例例说明说明l表达式表达式1:循环控制变量循环控制变量赋赋初值初值l表达式表达式2:布尔型,:布尔型,循环条件循环条件,判断循环是否继续,判断循环是否继续l表达式表达式3:修改修改循环控制变量值循环控制变量值97for 语句执行过
53、程语句执行过程(1)计算表达式)计算表达式1,给循环控制变量赋初值,给循环控制变量赋初值(2)计算表达式)计算表达式2l如果值是如果值是true,执行循环体,执行循环体l如果值是如果值是false,执行(,执行(4)(3)计算表达式)计算表达式3,修改循环控制变量值,返回(,修改循环控制变量值,返回(2)(4)结束循环,执行)结束循环,执行 for 语句的下一条语句语句的下一条语句true表达式表达式1表达式表达式2表达式表达式3false循环体循环体98for 语句执行过程语句执行过程第一步第一步 i=1第二步第二步 1=3?第三步第三步 输出输出1第四步第四步 i=22=3?输出输出2i=
54、33=3?输出输出3i=44=3?结束循环结束循环运行结果:运行结果:123 特别注意:循环结束时循环控制变量的值特别注意:循环结束时循环控制变量的值99【例例3-12】计算计算1100之间的整数之和之间的整数之和s =1+2+3+4+100100【例例3-12】 for 语句执行过程语句执行过程s=0i=1i=100?s=0+1i=2i=100?s=1+2i=3i=100?s=1+2+3i=4i=100?结束循环结束循环i0?m=4-1输出输出m=330?m=3-1输出输出m=220?m=2-1输出输出m=110?m=1-1输出输出m=000?结束循环结束循环如果修改为:如果修改为:int
55、m=0;则不进入循环则不进入循环107 while 语句实例分析语句实例分析运行结果:运行结果:此程序没有结果,没有走此程序没有结果,没有走while循环!循环!死循环!死循环!108【例例3-9】计算计算10!s*=i; i+;运行结果运行结果10!=3628800.0s*=i+; 109【例例3-9】 while 语句执行过程语句执行过程i=1 s=1i=10?s=1*1i=2i=10i=10?s=1*2i=3i=10?s=1*2*3i=4i=10?s=1*2*3*10i=11i0?m=3-1输出输出m=2m0?m=2-1输出输出m=1m0?m=1-1输出输出m=0m0?结束循环结束循环如果修改为:如果修
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年回扫描变压器公司技术改造及扩产项目可行性研究报告
- 2024-2030年双缸液压举升机公司技术改造及扩产项目可行性研究报告
- 2024-2030年全自动石油产品闪点和燃点试验器搬迁改造项目可行性研究报告
- 2024-2030年全球及中国黑胡椒粉行业销售现状及前景趋势预测报告
- 2024-2030年全球及中国紫外线固化材料行业供需前景及发展趋势预测报告
- 2024-2030年全球及中国水产预混饲料行业营销形势及需求规模预测报告
- 2024-2030年全球及中国智慧停车引导系统行业发展规模及投资前景展望报告
- 2024-2030年全球及中国多壁聚碳酸酯板行业产销规模及需求前景预测报告
- 2024-2030年全球及中国厄他培南行业销售情况及需求规模预测报告版
- 2024-2030年全球及中国公共区域用自动体外除颤器行业前景趋势及投资动态分析报告
- 2024湖南省电子信息产业研究院招聘3人高频难、易错点500题模拟试题附带答案详解
- 安全月度例会汇报材料模板
- 2024年保安员证考试题库及答案(共130题)
- 山东法院服务保障中国(山东)自由贸易试验区建设白皮书2019-2024
- 2025届北京数学六年级第一学期期末质量检测试题含解析
- 人教版2024七年级上册生物期末复习背诵提纲
- 流行病学学习通超星期末考试答案章节答案2024年
- 2024年事业单位考试公共基础知识题库300题(附答案与解析)
- 血液透析远期并发症及处理
- 防范工贸行业典型事故三十条措施解读
- 四川快速INTL2000电梯控制系统电气系统图
评论
0/150
提交评论