




已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 java语言基础知识,1,本章知识点,本章主要讲述Java语言的基本语法知识, 包括基本数据类型, 运算符和表达式,控制语句。 通过本章的学习,可编写简单的Java应用程序,学习目标、学习建议,学习目标 本讲主要讲述java编程语言的基本语法知识 简单数据类型; 运算符和表达式; 控制语句; break语句与return语句的使用与区别 数组。 学习指南 同任何一种编程语言一样,应深刻理解语法知识点的概念,本章重点,重点 深刻理解各知识点的基本概念,掌握java 的语法规范; 熟练使用各种数据类型; 熟练使用各种控制语句;,211 标识符和保留字,标识符 程序员对程序中的各个语法单位命名时使用的命名记号 称为标识符(identifier) Java语言中,标识符是以字母,下划线(_),美元符($) 开头的一个字符序列,后面可以跟字母,下划线,美元 符,数字; 大小写敏感 如,no1,My_name,_a0$, $Mon为合法的标识符; 而2m、 -My_n,class 为非法的标识符,211 标识符和保留字,保留字 具有专门的意义和用途,不能当作一般的标识符使用, 这些标识符称为保留字(reserved word),也称为关键字, 下面列出了java语言中的所有保留字 java语言中的保留字均用小写字母表示,class , int, char, double, boolean, float, long, while for, return, continue, if, else, case, break,byte, short, do, false, catch,default,extends,final, finally,import,implements,interface, abstract, instanceof,length,native,new,null,package, private,protected,public,switch,synchronized, static,super,try,true,this,throw,throws, threadsafe,transient,void,,211 标识符和保留字,注释 Java运行在源程序中添加注释,以增加程序的可读性, 系统不会对注释内容编译java允许三种注释 单行注释 以“/”开始,到行末 多行注释 以“/*”开始,以“*/”结束 /* 单行或多行 */ 文件注释 产生一个HTML文档,以“/*”开始,以“*/”结束 /* 文件注释 */,211 标识符和保留字,语句,分号,块 语句是程序中最小的单位; 分号分隔语句; 块由大括号包含;,211 编码体制,1.类名:每个词的首字母大写; 2.方法:首个词的首字母小写,其余词首字母大写 3.常量: 每个字母都大写,每个词用下划线分开 4.变量:所有字母小写;,2.1.2 数据类型,java中的数据类型划分 java语言的数据类型有基本类型和复合(引用)类型(reference): 基本数据类型: 整数类型(Integer):byte, short, int, long 浮点类型(Floating):float,double 字符类型(Textual):char 布尔类型(Logical):boolean 复合类型(reference): Array数组 Class类 Interface接口,2.1.3 变量与常量,变量 变量是Java程序中的基本存储单元,其定义包括变量名、 变量类型和作用域: 变量名是一个合法的标识符, 不能为保留字,变量名应具 有一定的含义,以增加程序的可读性; 变量类型可以为上面所说的任意一种数据类型; 变量使用前,先声明,在赋值。 比如:public int sum ;,变量与常量,常量 程序运行期间不改变的量,Java中通过final命令把一个标识符定义为常量 Java中的常量是有类型的 ; 常量的声明方式与变量的声明基本一样,只需在前面加上关键字final,如 final int MAX=100; final float PI=3.1415926f; Java约定常量标示符全部用大写 程序中使用常量有两个好处: 增加程序可读性 增强可维护性,2.2 基本数据类型,整型 整型数就是整数,Java中的整型数都是有符号数: 正整数、零、负整数,整型常量 整型常量即整常数,分为一般整型常量和长整型常量, 分别用32位和64位的数据存储长度表示。 Java整常数有三种表示方法: 十进制整数: 使用多个数字09表示,首位不能为0(整数0除外) 如:123,456,0,整型常量,八进制整数:以0开头,后面跟数字07中的数 0123表示十进制数83 010表示十进制数8,十六进制整数: 以0x或0X开头,后面跟数字09中的数或af中的小写字母 或AF中的大写字母,其中,af或AF分别表示十进制 数1015,如: 0x123表示十进制数291 0X11表示十进制数17,整型,整型变量: 整型变量的类型有byte、short、int、long四种, 下表列出各类型所在内存的位数和其表示范围。 int类型是最常使用的一种整数类型,但对于大型的计 算, 超出int类所表示的范围,这时要使用long类型 整数类型与c/c+不同,其内存长度是固定的,S,整型,在编程中最常使用的整数类型是int,在实际编程中可根据 每种数据类型所表示的范围灵活选择 Java的整数类型表示 的是有符号数 并且每种数据类型的存储长度是固定的, 不会因 平台或系统不同而变化,为Java程序的跨平台提供了保障。,【例2-1】 整型变量的定义与使用,public class testIntDemo public static void main(String args) byte i=012; /八进制 byte j=12; /十进制 byte k=0x12; /十六进制 int x=123; long y=123L; System.out.println(“i=“ + i + “ j=“+j + “ k=“+k); System.out.println(“x=“ + x + “ y=“ + y); ,”+”是字符串的连接符号,基本数据类型,浮点型(实型)数据 浮点数就是数学中的实数,Java中的浮点数 有float和double两种类型 表示了不同实数的存储长度与精度 浮点型常量: 十进制数形式 数字和小数点组成,必须有小数点,如0.123, 1.23, 123.0 科学计数法形式 如:123e3或123E3,其中e或E之前必须有数字, 且e或E后面的数必须为整数 float型的值,必须在数字后加f或F, 如1.23f,基本数据类型,在默认的情况下浮点常量为double类型表示存储长度是64位 如果要表示float类型的常量,须在数字后面加f或F, 如常量12.3表示的是double,存储长度是64位; 常量12.3F表示是float类型的常量,存储长度是32位 ;,基本数据类型,浮点型(实型)数据 浮点型变量有float和double两种类型, 其存储长度与表示的数据范围如表2-2所示。,【例2-2】 浮点型变量的定义与使用,public class testFloatDemo public static void main(String args) float i=12.3f, j=12.3f; float k=i*j; double x=12.3, y=12.3; double z=i*j; System.out.println(“i=“+i+“ j=“+j + “i*j=“+k); System.out.println(“x=“+x+“ y=“+y + “x*y=“+z); ,”+”是字符串的连接符号,基本数据类型,字符类型char 字符常量是用单引号括起来的一个字符,如a,A; 与C/C+不同,Java中的字符型数据是16位无符号型数据, 它表示Unicode集,不仅仅是ASCII集; 与C、C+相同,Java也提 供转义字符,以反斜杠()开头, 将其后的字符转变为另外的含义: ddd1到3位8进制数据所表示的字符(ddd) uxxxx1到4位16进制数所表示的字符(xxxx) 单引号字符、 反斜杠字符 r 回车 n 换行 t 横向跳格 b 退格,简单数据类型,字符类型char 字符变量的类型为char,它在机器中占16位,其范围为 065535。字符型变量的定义如: char c=a; /指定变量c为char型,且赋初值为a 与C、C+不同,Java中的字符型数据不能用作整数, 因为Java不供无符号整数类型。但是同样可以把它当作 整数数据来操作:例如: int three=3; char one=1; char four=(char)(three+one); /four=4 在计算加法时,字符型变量one被转化为整数相加, 最后把结果又转化为字符型。,简单数据类型,字符串类型 字符串与C、C+相同,Java的字符串常量是用双引 号(“ ”)括起来的一个字符; 如 “This isastring.”; 但不同的是,Java中的字符串常量是作为String类的 一个对象来处理,而不是一个数据; 有关类String, 将在后面讲述,【例2-3】 字符型变量的定义与使用,public class testChar public static void main(String args) char ch1=a, ch2=A; char ch3=101; /编码为八进制数101的字符 char ch4=“; /转义字符表示双引号 char ch5=中; /输出中文字符 System.out.println(ch1); System.out.println(n); /输出换行字符 System.out.println(ch2); System.out.println(ch3); System.out.println(ch4); System.out.println(ch5); ,2.2 基本数据类型,布尔类型boolean 布尔型数据只有两个值true和false,且它们不对应 于任何整数值。布尔型变量的定义如: boolean f1, f2=false;,public class SimpleTypes public static voidmain(Stringargs) int a=10, b=20; boolean x,y,z; x=(ab); y=(a!=b); z=(a=b); System.out.println(“x=“+x+”n”); System.out.println(“y=“+y+”n”); System.out.println(“z=“+z+”n”); ,2.3 变量赋初值,在实际的编程中需要程序员为一些变量赋初值。Java语言允许在定义变量的同时为变量赋值,也就是变量的初始化。如,,int i=123; /定义变量i为整型变量,初值为123 float f=1.23f; /定义变量f为浮点型变量,初值为1.23 char ch=A; /定义变量f为字符型变量,初值为A,在定义多个同类型变量的同时可只为部分变量赋初值。如, int i,j=10, k=20; 定义三个整型变量j,j,k,并对j,k初始化,需要注意的是,如果对几个同类变量赋同一个常量值,应写出 int i=10,j=10, k=10; 而不是int i=j=k=10;,简单数据类型例子,public class Assign public static void main (String args ) int x , y ; /定义x,y两个整型变量 float z = 1.234f ; /指定变量z为float型,且赋初值为1.234 double w = 1.234 ; /指定变量w为double型,且赋初值为1.234 boolean flag = true ; /变量flag为boolean型,且赋初值为true char c ; /定义字符型变量c String str ; /定义字符串变量str String str1 = “ Hi ” ; /指定变量str1为String型,且赋初值为Hi c = A ; /给字符型变量c赋值A str = “ bye ” ; /给字符串变量str赋值“bye” x = 12 ; /给整型变量x赋值为12 y = 300; /给整型变量y赋值为300 ,简单数据类型的使用 与c语言没有本质的 区别,2.4 基本数据类型优先关系及相互的转换,自动类型转换 整型、实型、字符型数据混合运算,同类型的数据先转化为同一类型,然后 进行运算;转换从低级到高级,如下图:,2.4 各类数值型数据间的混合运算,不发生不安全的自动类型转换 与c/c+不同,java不会发生不安全的数据类型转换,即不会自动把精度高的数据类型向精度低的数据类型转换,比如;,public class st public static void main(String args) int i; float f=32.4f; i=f; System.out.println(“ni=“+i+“n“); ,编译时会提示错误: possible loss of presicison,2.4各类数值型数据间的混合运算,强制类型转换 高级数据要转换成低级数据,需用到强制类型转换,如: int i; byte b=(byte)i; /把int型变量i强制转换为byte型可能会导致溢出或精度的下降,最好不要使用,public class st public static void main(String args) int x=(int)45.0+(int)45.9; System.out.println(“nx=“+x+“n“); ,2.5 运算符与表达式,在程序中对各种类型的数据进行加工处理的过程就是运算 表示各种不同运算的符号称为运算符; 参与运算的数据称为操作数; 按操作数的数目来分,如下所示: 一元运算符:,等 二元运算符:如,*,/等 三元运算符:? :,2.5.1 赋值,赋值运算 “=”是赋值运算符,通过赋值表达式把表达式的值赋值给变量,赋值运算的一般格式: = 赋值表达式的求解过程:先计算出赋值号“=”右侧表达式的值,然后赋值给赋值号左侧的变量,如, int a ,b; a=4; 为变量a赋值 b=(a+1)*10; 求解(a+1)*10的值为50,然后赋值给变量b,使用赋值表达式要注意的问题,赋值表达式的值 赋值表达式本身就是一个表达式,该表达式的值就是赋值号左侧变量获得的值。,赋值表达式运算顺序从右到左 赋值表达式本身就是一个表达式,该表达式的值就是赋值号左侧变量获得的值 如何理解下面的赋值语句: int x,y,z; x=y=z=10; 上面的赋值表达式相当于 x=(y=(z=10),使用赋值表达式要注意的问题,正确使用赋值表达式 在赋值表达式中出现的变量必须已经定义,否则编译时会出错,假设,变量i没有定义,而直接使用下面的赋值语句, i=4; /编译时出错,i未定义 另外,赋值号右侧表达式的必须有确定的值,如, int i; i=(j+1)*10 ; /编译出错,因为j未定义,使用赋值表达式要注意的问题,赋值相容 在赋值表达式中,如果参与运算的表达式与变量的类型相同,可以赋值;如果类型不同,有两种情况, 赋值相容 如果变量的类型比表达式值的类型精度高,系统会自动 将表达式的值转化为与变量相同的类型,称为赋值相容,如, long bigValue=89L; 类型相同,可以赋值 long bigValue=3; 3是int,赋值相容,3自动转化为long然后赋值,使用赋值表达式要注意的问题,赋值不相容 与C/C+不同,如变量类型的精度低于表达式值的类型,为了避免发生数据精度损失,系统不会自动把表达式值的类型转化为变量类型,编译程序产生编译错误“可能损失精度错误”,如, int i=12.34; 赋值不相容,编译出错,因为12.34是double类型 赋值不相容时,要使用“强制类型转换”,如, int i=(int)12.34; 强制类型转换,把double类型的值12.34强制转换为int类型的值12,然后赋值给i,在进行强制类型转换时会损失精度,使用时要慎重。,2.5.2 扩展赋值运算符,在赋值号“=”前面加上其他运算符,就构成了扩展赋值运算符。如在赋值号“=”前加上“+”运算符,就构成了扩展赋值运算符“+ =”,其用法如下, int i; i+ =10; /相当于i=i+10 i* =10; /相当于i=i*10 扩展赋值表达式i+ =10相当于i加10,然后再赋值给i,再如, int i,j=5; i+ =(j+10); /相当于i=i+(j+10),2.5.2 扩展赋值运算符,所有的二元(双目)运算符,都可以添加在赋值号“=”前构成扩展赋值运算符。Java共有11个扩展赋值运算符,它们是: + =,- =,* =,/ =,% =, & =,| =, =, =, =,2.5.3 算术运算符,算术运算符作用于整型或浮点型数据,完成算术运算。分为一元运算符和二元运算符。一元运算符一次对一个操作数运算,二元运算符运算需要两个操作数。 一元运算符 +(正),(负),+(自加),(自减)。 注意:前缀+、-与后缀+、-的区别 int i=10, m,n; m=i+; /相当于m=i, i=i+1,则m=10, i=11 n=+i; /相当于i=i+1, n=i ,则m=11, i=11 自加自减运算符只能作用在变量上,如: int x=10,y; y=+(y*10); /错误,+不能作用在表达式上,2.5.3 运算符,二元运算符 +(加),(减),*(乘),/(除),%(取余) 需要注意: 与C/C+不同,对取模运算符%来说,其操作数可以为浮点数 7 / 2 =3 /操作数都是整数,整除 7.0 / 2 =3.5 /除法 7 % 2 =1 /余数为整 7.0 / 2 =1.0 /余数为浮点数 -7 % 2 =-1 /符号与被除数相同 7 % -2 =1,2.5.4 关系运算符,关系运算符用来比较两个值之间的“关系” 返回布尔类型值true或false,而不是C、C+中的1或0; 关系运算符都是二元运算符,共有6个关系运算符: 大于(),小于(=) 小于等于(=),恒等于(=),不等于(!=) 使用关系运算符,要注意运算符的优先级,2.5.4 关系运算符,使用关系运算符,要注意运算符的优先级: 这四个运算符的优先级一样:,=,j != a j) != (a a+b 等价于 i (a+b) f = a i + j 等价于 f = (a i + j ),2.5.5 逻辑运算符,逻辑运算符用来连接关系表达式形成逻辑表达式,逻辑运算只能 处理布尔值,运算结果是布尔类型值true或false; Java中的逻辑运算符共有六个: &布尔逻辑与 , | 布尔逻辑或,! 布尔逻辑非 布尔逻辑异或, &条件与, | 条件或 布尔逻辑运算符的真值表如,2.5.5 逻辑运算符,布尔逻辑运算符主要用在控制语句中作为条件,其返回值是 逻辑值的true和false,分别用来表示条件的“真”与“假”,如, (ch = a) (ch = A) & (ch = Z)的返回值如果为true,表明ch是 大写字母 然后两个表达式进行“或”运算,如果返回值为true, 则ch是字母。,2.5.5 逻辑运算符,逻辑运算符&(条件与)和|(条件或) 与位运算符&(布尔逻辑与)和|(布尔逻辑或)的用法与区别 “&”和“|”在运算时采用短路运算: (12)&(62) false (12)&(62) false&true false (21)&(62) true & true true (12) | (62) false | true true (21) | (62) true (21) | (62) true | true true,public class testLogic public static void main(String args) boolean x,y,xx,yy; int i=10, j=10,i i=10, jj=10; x=true | (+i 10); y=true ,【例2-11】 逻辑运算符举例,本例演示了逻辑运算符以及逻辑(条件)运算中的短路计算,2.5.6 位运算符,位运算符用来对二进制数的位进行操作,操作数只能为整型和字符型数据 (右移),(0填充右移) b=00111001;则有如下结果: a3 = a3= a&b= a|b= a= ab=,位运算符,按位与运算(&) 参与运算的两个值相应位都为1,该位的结果为1,否则为0; 即:0&0=0,0&1=0,1&0=0,1&1=1,如: a=1 0 0 1 1 1 0 1 b=0 0 1 1 1 0 0 1 a&b=0 0 0 1 1 0 0 1,位运算符,按位或运算(|) 参与运算的两个值相应位都是0,该位结果为0,否则为1, 即:0|0=0,0|1=1,1|0=1,1|1=1,如 a=1 0 0 1 1 1 0 1 b=0 0 1 1 1 0 0 1 a |b=1 0 1 1 1 1 0 1,位运算符,按位异或运算() 参与运算的两个值,如果两个相应位相同,输出位为0,否则为1; 即:00=0,01=1,10=1,11=0 按位取反运算() 按位取反运算()属于一元运算符,只对一个自变量进行操作 按位取反生成与输入位的相反的值若输入0,则输出1;输入1,则输出0 即:0=1,1=0,位运算符,左移位运算符() 左移位运算时,右边的空位补0; 在不溢出的情况下,数据左移1位相当于乘以2,如: a= 10011101; b=a1; b= 00111010;,位运算符,右移位运算符(与) 运算符执行一个右移位(带符号),左边按符号位补0或1,例如: int a=16,b; b=a2; /b=4 运算符同样是执行一个右移位,在带符号的右移()中,右移后左边留下的空位中添入的是原数的符号位(正数为0,负数为1); 在不带符号的右移()中,右移后左边留下的空位中添入的一律是0,如 a=10011101; b=00111001;有如下结果: a3 =11110011; a3=00010011;,2.5.6 位运算符,位运算符用来对二进制数的位进行操作,操作数只能为整型和字符型数据 (左移),(0填充右移) (同为0,异为1),2.5.7 条件运算符,条件运算符? 在Java语言中,三目条件运算符(?:)与C语言中的使用规则是完全一致的,使用的形式是: x ? y:z; 规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值,如: int a=3,b=4; int max=ab?a:b; / max的值为4 int x=-3, sign; sign=(x0?1:(x0?-1:0); /得到x的符号,2.5.8 字符串连接运算符,字串运算符+ 运算符+还可以用来连接两个字符串,若表达式中包含一个String,那么其它操作数都必须是字串如: int x = 0, y = 1, z = 2; String s = “No“; System.out.println(s + x + y + z); 编译程序会将x,y和z转换成它们的字串形式,而不是先把它们加到一起; 输出为“No012“。,2.5.9 其他运算符,对象运算符(instanceof) instanceof用来判断一个对象是否是某一个类或者其子类的实例,如果是返回ture;否则返回flase ()和 括号运算符()的优先级是所有运算符中最高的,所以它可以改变表达式运算的先后顺序,它可以表示方法或函数的调用; 方括号运算符 是数组运算符 运算符 用于访问对象实例或者类的类成员函数; new运算符 new运算符用于创建一个新的对象或者新的数组,2.6 表达式,表达式由操作数和运算符按一定的语法形式组成序列 一个常量或一个变量名字是最简单的表达式; 表达式的值还可以用作其他运算的操作数,形成更复杂的表达式 优先级决定了同一表达式中多个运算符被执行的先后次序,如乘除运算优先于加减运算,同一级里的运算符具有相同的优先级 运算符的结合性则决定了相同优先级的运算符的执行顺序,运算符的优先级与结合性,举例,【例2-12】 求一个圆的面积 给出圆的半径,定义PI为浮点型常量,程序如下: public class Circle_area public static void main(String args) final float PI=3.14f; /定义常量PI float r=2.5f,area; area=PI*r*r; System.out.println(“Area(“+r+“) = “+area); ,一个程序至少有一个公共类,Java中所有的操作,都是在类的方法中完成的,本程序只有一个主方法main,举例,【例2-13】求一个三位数的数字之和 首先求得该数的各位数字,程序如下: public class Digsum3 public static void main(String args) int n=123,a=0,b=0,c=0,digsum=0; a = n % 10; /个位 b = (n%100) /10; /十位 c = n / 100; /百位 digsum=a+b+c; System.out.println(“Digsum(“+n+“) = “+digsum); ,2.7 流程控制语句,结构化程序设计原则是 自顶向下 逐步求精 模块化 除了以上的原则,结构化程序设计还有一个重要的规定: 能使用“顺序结构”、“选择结构”、“循环结构”这三种基本结构来定义程序的流程,流程控制语句的特点,三种基本控制结构的共同特点: 每种结构都有唯一的入口点和唯一的出口点; 每种结构中的每一条语句都有可能被执行; 结构中没有“死循环”,三种结构可以相互嵌套。,2.7.1 顺序结构,顺序结构,先执行A, 再执行B.,2.7.2 选择结构,选择结构 选择结构又称为分支结构,java提供if,switch两种分支结构 if语句有两种基本形式 if(布尔表达式) 语句; if(布尔表达式) 语句1; else 语句2;,If语句要注意的问题,if-else语句根据判定条件的真假来执行两种操作中的一种,其格式: if(boolean-expression) s1; else s2; 若布尔表达式的值为true,则程序执行s1,否则执行s2; 布尔表达式boolean-expression是任意一个返回布尔型数据的达式(这比C、C+的限制要 严格); 每个单一的语句后都必须有分号; 语句s1,s2可以为复合语句,要用大括号起;外面不加分号; else子句是任选的;,嵌套If语句,在简单if语句和if_else语句形式中,语句1或语句2可以是任意合法语句,若它们也是if语句,就构成嵌套的if语句,嵌套形式1 if(表达式1) if(表达式2) 语句1 else 语句2 else 语句3,嵌套形式2 if(表达式1) 语句1 else if(表达式2) 语句2 else 语句3,else子句不能单独作为语句使用,它必须和if配对使用; 配对原则:else总是与离它最近的尚未与其他else 配对的 if语句配对; 可以通过使用大括号来改变配对关系,【例2-13】求出三个整数中的最大值 与最小值,if语句举例,public class Max3if public static void main(String args) int a=1,b=2,c=3,max,min; if (ab) max = a; else max = b; if (cmax) max = c; System.out.println(“max = “+max); min = ab ? a : b; min = cmin ? c : min; System.out.println(“min = “+min); ,有时条件语句 可以代替if语句,Switch语句,switch语句 switch语句(又称开关语句)是和case语句一起使用的, 是多分支语句中,一般格式如下: switch(表达式) case 判断值1:语句块1 case 判断值2:语句块2 case 判断值3:语句块3 case 判断值n:语句块n default:语句块n+1 ,如果表达式的值等于 判断值i,则执行其 后面的语句, 否则执行default后的语句,Switch语句举例,public class ex_switch public static void main(String args) int num=1; switch (num) case 0: System.out.println(“zero“); case 1: System.out.println(“one“); case 2: System.out.println(“two“); case 3: System.out.println(“three“); default: System.out.println(“Data Error!“); ,【例2-14】输入03之间的一个整数,输出相应的英文单词,Switch语句与break语句,switch语句一般要与break语句结合,才能正确实现多分支 break语句用来在执行完一个case分支后,使程序跳出 switch语,即终止switch语句的执行。 case子句只是起到一个标号的作用,用来查找匹配的入口 从此处开始执行,对后面的case子句不再进行匹配, 而是直接执行其后的语句序列; 所以,在每个case分支后,要用break来终止后面的case分支 语句的执行; 在一些特殊情况下,多个不同的case值要执行一组相同 的操作,可不用break,使用Switch语句要注意的问题,表达式回值类型必须是这几种类型之一: int,byte,char,short; case子句中的判断值必须是常量,而且所有case子句中的值是不同的; default子句是任选的,当表达式的值与任一case子句中的都不匹配时,程序执行default后面的语句;,使用Switch语句要注意的问题,如果表达式的值与任一case子句中的值都不配,且没有 default子句,程序直接跳出switch语句; case分支中包括多个执行语句时,可以不用大括号括起; switch语句的功能可以用嵌套if语句实现, 使switch语句 更简炼,可读性强,执行效率提高;,public class Week1 public static void main(String args) int score=78; score=score/10; switch (score) case 0: case 5: System.out.println(“fail“); break; case 6: case 7:System.out.println(“pass“); break; case 8: System.out.println(“good“); break; case 9: case 10: System.out.println(“Excellent“); break; default: System.out.println(“Data Error!“); ,【例2-15】输入一个成绩,输出该成绩所属的等级(059为“fail”, 6079为“pass”,8089为“good”,90100为“Excellent good”),循环结构是程序中一种重要的基本结构,是指在一定的条件下反复执行某段程序,被反复执行的这段程序称为“循环体”; Java语言中提供了三种循环语句有: while语句 do-while语句 for语句,2.7.3 循环结构,三种循环结构,While语句,while语句格式: while (条件表达式) 循环体 ; 执行过程: 求解条件表达式。如果其值为true,转2;否则转3 执行循环体语句组,然后转1 执行while语句后面的语句,进入循环之前,必须给相关的控制循环变量赋初值以保证循环控制表达式中的变量有确定的值; 在循环体内必须要有修改循环控制变量值的语句,以保证循环达到结束条件,正常退出循环,While语句两个要素,do-while语句 格式如下: do 循环体语句; while(条件表达式); 与while循环的不同在于:先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环; do-while循环至少要执行一次循环语句,do-While语句-举例,在3条循环语句中,for语句最为灵活,常常应用于循环次数已经确定的情况;一般格式: for (表达式1;表达式2;表达式3) 循环体 执行过程: 先求解表达式1,表达式1只执行一次, 一般是赋值语句,用于初始化变量; 求解表达式2,若为假, 则结束循环,为真执转3; 执行循环体,执行表达式3; 转回2,for语句,for语句举例,public class Sum_for public static void main(String args) int i=1,n=10,s=0; for (i=1;i1;i-) s += i; System.out.print(i+“+“); System.out.println(i+“ = “+(s+i); ,【例2-16】求110的累加和,for (表达式1;表达式2;表达式3) 循环体 表达式1 常用于说明循环变量、对一组变量进行初始化或赋值 第一次循环的开头被执行,且只被执行一次 ; 可以是被逗号隔开的多个赋值表达式,如: . int i, n ,s; for (i=1,n=10,s=0; i=n; i+) s = s + i; .,for语句的表达式,for (表达式1;表达式2;表达式3) 循环体 表达式2 用于循环控制的条件测试,相当于while循环控制语句中的条件 在每次循环的开头被执行(首次循环时,首先执行表达式1 ,再执行表达式2),若其值为真,则执行循环体语句;否则,跳出循环 若在第一次循环时该语句的值便为假,则循环体将一次也不被执行,for语句的表达式,for (表达式1;表达式2;表达式3) 循环体 表达式3 在每次循环体执行后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年妇科常见妇科疾病诊断治疗综合评估答案及解析
- 乡村振兴战略试题及答案
- 欧美流行风课件
- 建行总行面试题库及答案
- 工厂一级安全培训内容课件
- 人体解剖专项测试题附答案
- 2025年房地产企业财务稳健性与金融风险防范体系构建报告
- 工伤管理条例课件
- 2025年新能源物流车在城市环卫清洁作业中的应用与成本分析报告
- 税收行为检举管理办法
- 大学生军事技能训练学习通超星期末考试答案章节答案2024年
- 重症医学科护士长竞聘
- GB/T 44666-2024指矫形器
- 叙事护理学智慧树知到答案2024年中国人民解放军海军军医大学
- 第三单元 资产阶级民主革命与中华民国的建立(大单元教学设计)-2024-2025学年大单元视域下的历史同步教学(统编版·八年级上册)
- 2024年秋新人教版地理七年级上册全册教学课件(新教材)
- TCQJR 017-2024 重庆市“碳挂钩”贷款业务操作指南
- (高级)航空油料特设维修员理论考试题库(浓缩500题)
- 液化气站质量管理手册样本
- 2024年典型事故案例警示教育手册15例
- DL∕T 853-2015 带电作业用绝缘垫
评论
0/150
提交评论