收藏 分享(赏)

第2章Java语言基础.ppt

上传人:hwpkd79526 文档编号:10043386 上传时间:2019-10-01 格式:PPT 页数:105 大小:404KB
下载 相关 举报
第2章Java语言基础.ppt_第1页
第1页 / 共105页
第2章Java语言基础.ppt_第2页
第2页 / 共105页
第2章Java语言基础.ppt_第3页
第3页 / 共105页
第2章Java语言基础.ppt_第4页
第4页 / 共105页
第2章Java语言基础.ppt_第5页
第5页 / 共105页
点击查看更多>>
资源描述

1、2.1 Java语言基础2.1.1 基本语法单位2.1.2 数据类型2.1.3 常量2.1.4 变量2.2 运算符与表达式2.1.1 基本语法单位2.1.2 数据类型2.3 流程控制语句,第2章 Java语言程序设计基础,2.1 Java语言基础,2.1.1基本语法单位 1.空白Java程序中,换行符、回车符、空格键、Tab键都被看作是空白。程序的元素间可插入任意数量的空白,编译器忽略多余的空白程序中应使用缩进格式,使得同一层语句的起始列位置相同。如下面两段代码:,/不好的风格 class Pointint x,y;Point(int x1,int y1) x=x1; y=y1; Point(

2、 )this(0,0); void moveto(int x1,int y1) x=x1;y=y1; ,/好的风格 class Pointint x,y;Point(int x1,int y1)x=x1;y=y1;Point()this(0,0);void moveto(int x1,int y1)x=x1;y=y1; ,2.注释程序中适当地加入注释,会增加程序的可读性。程序 中允许加空白的地方,就允许写注释,编译器将忽略注释下面是Java中的三种注释: /单行注释,从/开始,止于行尾; /* */ 多行注释 从/*开始,止于*/,不能嵌套; /* */ 文档注释 3.语句、分号和块Java中

3、的语句是最小执行单位,各语句间以分号分隔。一个语句可写在连续的若干行内。花括号包含的一系列语句称为语句块,可以嵌套。,4. 关键字 所谓关键字(key words)是该语言事先定义的一组词汇,这些词汇在该语言中具有特殊的用途,用户不能将它们定义为标识符。 Java语言(1.5.0版)目前共定义了53个保留字。其中50个关键字,3个常量。 教材P7表1-1,表2-1 Java 关键字表,下面将这53个保留字分类如下: 有关数据类型的12byte short int long float double char boolean voidclass interface enum 有关流程控制和异常处

4、理的16if else switch case default while do for continue break try catch finally throw throws assert, 有关修饰符和方法的返回值17public protected private abstract final static synchronized native transient volatile strictfpreturnextends implements package importinstanceof, 有关对象使用的3new this super 作为常量值的3true false n

5、ull 作为保留字但没有被使用的2const goto,5.标识符 1 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)包括:类名、变量名、常量名、方法名、 2 标识符由字母、数字、下划线( _ )和美元符号($)组成; 3 标识符必须以字母、下划线或美元符号开头 4 标识符区分大小写 5 Java中的标识符长度不限。过长则增加录入量且易出错 6 标识符必须不是一个关键字或布尔型字符(true或false )或者保留字null。(可以包含关键字) 7 见名知义,增加程序的可读性,(1) 类名和接口名的命名一般使用名词命名,首字母应该大写,若名称是多个单词的组合

6、,每个单词的第一个字母都应该大写,如:class Studentclass AccountBookinterface NumberTestArrayIndexOutOfBoundsException,Java标识符的命名约定,(2) 变量名和方法名一般用小写英文单词命名,若名称是多个单词的组合,则第一个单词小写,后面单词的第一个字母大写,如: balanceAccount currentValue setX() getTheNumberOfStudent() (3) 常量的命名应该全部大写并用下划线将词分隔开,如: MAX_ARRAY_SIZE或MY_NAME,2.1.2 数据类型,Java的

7、基本数据类型,null,Java的各种数据类型占用固定的内存长度,与具体的软硬件平台无关,体现了Java的跨平台特性。每种数据类型都有一个默认的数值,使得这种数据类型变量的取值总是确定的,体现了其安全性。,1.整型:byte、short、int、long 与C、C+相同,Java的整型常量有三种形式: (1) 十进制整数,如0、257、-365。 (2) 八进制整数,是以0开头的数,如0124表示十进制数84,-012表示十进制数-10。 (3) 十六进制整数,是以0x或0X开头的整数,如0x124表示十进制数的292。 注意:整型常量默认在机器中占32位,具有int类型,对于long型值,可

8、以在后面加上l或L,表示long型常量。如125L表示一个long型常量,它在JVM机器中占64位。,2.布尔型:boolean 只有true和false两种取值 注意:与C/C+语言不同,Java语言的布尔型数据不能与数值数据相互转换,即false和true不对应于任何的0和非0的整数值。,3.浮点型:float、double 表示有小数部分的十进制数,有两种形式: (1)小数形式。由数字和小数点组成。如:26.38,-0.12 (2)指数形式。由数字、小数点和E或e组成。如1.8e5,.3E-3。指数必须为整数 (3)数后加f或F为float,加d或D为double,没有则缺省为doubl

9、e 4.字符型:char 在Java语言中,汉字与英文字母均占16位,有两种形式: (1)引号括起来的单个字符。如:a , 5 , ! 。 (2)括起来的单个转义字符。见下页转义字符表,转义字符表,字符界面下要输出诸如单引号、双引号、反斜线等信息时使用,用八进制或十六进制的数来表示字符常量: 即在反斜杠后面加三位八进制数和在反斜杠后面加u,再在后面加四位十六进制数,如141和u0061都代表字符常量a,u3042表示日文的平假名。 任何的Unicode字符都可用这种方式表示。 注意:u0061就表示字符a,可在任何位置替换a,如:chu0061r c=u0061; 与下面一行等价char c=

10、a;,2.1.3 常量,常量是在程序运行的整个过程中其值保持不变的量 格式:final 数据类型 常量名 =初值; Java中常用的常量包括 整型常量:十进制、八进制和十六进制 浮点型常量:double(双精度)、float 字符常量:单引号括起来 布尔常量:true 和 false 字符串常量:双引号括起来,其中可以包括转义字符,标志字符串开始和结束的双引号必须在源代码的同一行上。如:“Hello Worldn”,2.1.4 变量,变量是在程序运行过程中数值可变的数据,通常用来记录运算中间结果或保存数据 Java中的变量必须先声明后使用。变量的声明格式:数据类型 变量名=初值; 例:int

11、a,b,c;double x=12.3;int x=0,y=10;int x, y=10;int x; x = 10;,特殊说明,1. 字符型变量 字符型变量的定义如: char c = a; char c1=97; Java字符型数据实际上是int型数据的一个子集,因此可以与其他数值型数据混合运算。但字符型数据不能与int型数据直接相互转换。,一般情况下,char型的数据可直接转换为int型的数据,而int型的数据转换成char型的数据需要强制转换。例如:int i = 66;char c = a;i = c; /validc = i; /invalid,char a=中; int n=a;

12、 System.out.println(n);/输出汉字中的unicode码,2.下面程序演示了字符型数据和布尔型数据的使用。boolean b;char ch1,ch2;ch1 = Y;ch2 = 65 ;System.out.println(“ch1=“+ch1+“,ch2=“+ch2);b=ch1=ch2;System.out.println(b);ch2+;System.out.println(“ch2=“+ch2);,2.2 运算符与表达式,2.2.1 算术运算:+、-、*、/、%、+、- 注意: 对*运算符要注意运算结果的溢出的问题。 两数做除法时,结果类型由操作数类型决定。如6

13、/ 5 = 1(只保留整数); 6 / 5.0 = 1.2 取模运算的结果是整数除法的余数。如9 % 2 = 1,可用于浮点类型; 自增和自减运算只适用于变量,而不能用于常量或表达式,注意j + +和 + + j的区别,前者先使用j的值,然后j的值增1,后者是先使j的值增1,然后再使用它。,int a = 12345 , b = 234567, c, d ; c = a*b/b ; /a*b超出了int类型,被截短,再除以 /b,结果不正确 d = a/b*b ; /a/b是整数除法,结果为0,因此d的结/果为0 System.out.println(“c=” +c); /-5965 Syst

14、em.out.println(“d=” +d); /0,long e, f; e = (long)a*b/b ; /a被转换为长整型,a*b的类型没/有超过long的范围,再除以b得到的结果正确 System.out.println(“e=” +e); f = (long)a/b*b ; System.out.println(“f=” +f); /结果仍为0,float f1= a*1.0f/b*b;,取余运算符,%运算符用来求两个操作数相除的余数。 取余运算的操作数可以为整数,也可以为浮点数。 例:7%4的结果为3。 当操作数含有负数时: 先去掉操作数的负号,再计算结果,结果的符号取被除数的

15、符号,且余数的绝对值小于除数的绝对值。 例如:10%3 = 1 10%-3 = 1-10%3 = -1 -10%-3 = -1,对浮点数取余: 在整数除法及取余运算中,如果除数为0,则抛出ArithmeticException异常.7.1%3=1.09999999999999967.1%1.1=0.4999999999999991 当操作数有一个是浮点数时,如果除数为0,除法和求余运算都不会抛出异常。 浮点运算中如果对double型或float型来说数值太大,则向上溢出到无穷大;太小则向下溢出到零。 Java用特殊的浮点值表示这些结果。 NEGATIVE_INFINITY 负无穷大 POSIT

16、IVE_INFINITY 正无穷大 NaN 非数字 值,+运算符的重载,+运算符不但可以作用于数值型数据用来计算两个数值型数据的和,还可以作用于字符串对象用来连接两个字符串。 例:下面的语句输出字符串”abcde”。System.out.println(“abc”+”de”);,如果+运算符的两个操作数如果有一个是字符串而另一个是其他数据类型,系统会自动将另一个操作数转换成字符串,然后再进行连接。例如下面代码输出” abc123”。 int x=1, y=2, z=3; System.out.println(“abc”+x+y+z); / 输出abc123 但要注意,下面代码输出” 6abc”

17、。 System.out.println(x+y+z+“abc“); / 输出6abc,+和-运算符,分别称为自增和自减运算符,主要用于对变量的操作 +表示加1 - -表示减1 都可以使用在变量的前面或后面。 放在变量前,表示给变量加1后再使用该变量; 放在变量的后面,表示使用完该变量后再加1。,例:变量x的值为5,执行下面语句后y和x的值如下所示:y=x+ ; y=5 x=6y=+x ; y=6 x=6y=x- ; y=5 x=4y=-x ; y=4 x=4,自增和自减运算符可以作用于浮点型变量,如下列代码是合法的。double d = 3.15 ;d + ;System.out.print

18、ln(“d = “+d);,请注意下面程序的输出结果。public class IncrementTestpublic static void main(String args)int i = 3 ;int s = (i+)+(i+)+(i+) ;System.out.println(“s = “+s+“ ,i=“+i) ;i = 3;s = (+i)+(+i)+(+i) ;System.out.println(“s = “+s+“ ,i = “+i) ; ,s = 12 ,i=6 s = 15 ,i = 6,2.2.2 关系运算:= =、!=、=、= 优先级低于算术运算符 关系运算符一般用来

19、构成条件表达式,比较的结果返回布尔类型的值true或false。 在Java语言中,任何类型的数据(包括基本类型和引用类型)都可以通过=和!=比较是否相等,但只有基本类型的数据(布尔型数据除外)可以比较哪个大哪个小。比较结果通常作为判断条件,例如:if (x = y),2.2.3 逻辑运算: 逻辑运算符的运算对象只能是布尔型数据,并且运算结果也是布尔型数据。 逻辑运算符包括: & (逻辑与)、| (逻辑或)、! (逻辑非)、& (短路与)、| (短路或) 、 (逻辑异或)。 说明: (1)& 和 | :运算符两边的表达式首先被运算,再对两个表达式的结果进行与、或运算。 (2)& 和 | :如果

20、从左边的表达式中得到的操作数能够确定整个表达式的结果,就不再对右边的表达式进行运算(短路,加快运算速度)。,b1=false,x=4,y=5,b2=false,x=4,y=4,int x1=3,y1=4; boolean b2=+x1y1 ,int x=3,y=4; boolean b1=+x=y | x+y;,b1=true,x=4,y=5,int x1=3,y1=4; boolean b2=+x1=y1 | x1+y1;,b1=true,x=4,y=4,int i=0; boolean b3=(i!=0 ,int i=0; boolean b4=(i!=0 ,b3=false,Except

21、ion:by zero,2.2.4 赋值运算符: 用来为变量赋新值。 主要有两类: 一类是使用“=”号赋值,它简单地把一个表达式的值赋给一个变量或对象; 另一类是扩展的赋值运算符。 赋值运算必须是类型兼容的,即左边的变量必须能够接受右边的表达式的值,否则会产生编译错误。如下面的语句会产生编译错误。int j ;j = 3.14 ;,注意:如果是对象赋值,则称为引用赋值。将右边对象的引用值(地址)赋给左边的变量,这样,两个变量地址相同,即指向同一对象。如:Date d1 = new Date();Date d2 = d1; 此时d1、d2指向同一个对象。对象引用赋值与基本数据类型的拷贝赋值是不同

22、的。在第3章将详细讨论对象的引用赋值。,2. 扩展赋值运算符 在赋值运算符“ = “前加上其他运算符,即构成扩展赋值运算符。它的一般格式为:var op= expression ; 这里op为运算符,其含义是将变量var的值与expression的值做op运算,结果赋给var。例如:a += 3 ; 等价于a = a + 3 。,表2-5 Java的复合运算符,其他运算符,(1) 条件运算符: ? : 格式如下:expression ? expression1 : expression2 expression为关系或逻辑表达式,其结果为布尔值 如果该值为true,则计算表达式expressio

23、n1的值,并将计算结果作为整个条件表达式的结果; 如果该值为false,则计算表达式expression2的值,并将计算结果作为整个条件表达式的结果。 例:min=a b ? a : b; /求a、b中较小的数并赋值min。,用条件运算符求三个数的最大值。 (如:a=9,b=4,c=12),int x=ab?(ac?a:c):(bc?b:c);,逐步靠近法: int x=ab?a:b; x=xc?x:c;,其他运算符,(2) 运算符声明数组、创建数组并且访问数组中一个特定的元素。 (3).运算符是访问对象实例或类的成员方法。 (4)(参数表)运算符 当声明或者调用一个方法的时候,在( )之间列

24、出方法的参数。如果是多个参数,中间用“,”分隔。,(6)new运算符 对象实例化运算符,其功能是实例化一个对象,即为对象分配内存。 (7)instanceof运算符 (后边讲) 测试一个对象是否是某一个类的实例或该对象对应的类是否是某一个类的子类。格式为: op1 instanceof op2op1必须是对象的名字而且op2必须是类的名字。如果对象直接或者间接地来自类,那么对象就被认为是类的一个实例。,2.2.5 数据类型转换,在Java程序编译阶段,编译器都要对类型进行严格的检查,任何不匹配的类型都不能通过编译器。比如在C/C+中可以把浮点型的值赋给一个整型变量,在Java中这是不允许的。如

25、果一定要把一个浮点型的值赋给一个整型变量,需要进行类型转换。 在Java中,基本数据类型的转换分为自动类型转换和强制类型转换两种。,1. 自动类型转换 自动类型转换也称加宽转换(widening conversion),是指将具有较少位数的数据类型转换为具有较多位数的数据类型。 例如,下面的代码是正确的:byte b=64 ;int i = b ; / 将byte 型的变量赋给整变量i是合法的,自动转换。,图中6个实心箭头表示无信息损失的转换,三个虚线箭头表示转换可能丢失精度。,例:下面代码的输出就丢失了精度int n = 123456789 ;float f = n ;System.out.

26、println(f) ; / 输出结果是1.23456792E8,2. 强制类型转换 可以将位数多的数据类型转换为位数少的数据类型,需要使用强制类型转换。 格式:(type)变量名 注意:将较长数据转换成较短数据可能造成溢出,如: int i=3; byte b=(byte) i;,3. 表达式中类型的自动提升 除了赋值要发生类型转换外,在含有变量的表达式中也有类型转换的问题,如:byte a = 40;byte b = 50;byte c;System.out.println(a+b);c = a+b; /compile error,尽管a+b的值没有超出byte型数据的范围,但是如果将其赋

27、给byte型变量c将产生编译错误。 因为,在计算表达式a+b时,编译器首先将操作数类型提升为int类型,最终计算出的a+b的结果90是int类型的。因此不能给c赋值,必须使用强制类型转换。这就是所谓的表达式中的类型提升。 如何修改?,c = (byte)(a+b);,int i = a+b;,但是下面代码不发生编译错误,即常量表达式不发生类型提升。如:c = 40+50 ; 自动类型转换和强制类型转换的问题也发生在对象中,对象的强制类型转换也使用括号实现。,运算符的优先级与结合性,运算符的优先级决定了表达式中不同运算执行的先后顺序。x y & !z / 相当于(xy)&(!z),关系运算符优先

28、级高于逻辑运算符 运算符的结合性决定了并列的相同运算的先后执行顺序 x+y+z 等价于(x+y)+z,“+”是左结合的 !x 等价于!(!x),“!”是右结合的 见下表 可以用括号显式地标明运算次序。适当地使用括号可以使表达式的结构清晰。,表达式由运算符和操作数组成,对操作数进行运行符指定的操作,并得出一个结果。操作数可以是变量、常量或方法调用等。 1.常量只有简单数据类型和String类型才有相应的常量形式 2. 变量在使用之前要先声明,其格式为:类型 变量名1=初值1,变量名2=初值2 ; - 变量可以是简单类型,也可以是类类型(引用)。 - 变量声明的地方有两处:一处是在方法内,称为自动

29、变量/局部变量/临时变量 ; 另一处是在类定义内,称为类的成员变量。,表达式,2.3 数据的输入输出,2.3.1 用消息对话框显示文本信息 2.3.2 从输入对话框获取输入 2.3.3 从控制台获取输入,2.3.1 用消息对话框显示文本信息,使用javax.swing包的JOptionPane类实现标准对话框。 通常用来显示消息或接受用户的输入。 使用JOptionPane类创建的标准对话框有消息对话框、输入对话框、确认对话框和选项对话框。 通过JOptionPane类的静态方法实现,标准对话框的一般布局如图所示,它包括图标区域、消息区域、输入值区域和选项按钮区域等。,1. 消息对话框publ

30、ic static void showMessageDialog(Component parentComponent, Object message,String title, int messageType, Icon icon),INFORMATION_MESSAGE ERROR_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE PLAIN_MESSAGE。,创建该对话框的代码如下: JOptionPane.showMessageDialog(null, “输入错误“, “警告“, JOptionPane.INFORMATION_MESSAGE,null);

31、,图12.11是一个消息对话框。,2.3.2 从输入对话框获取输入,2. 输入对话框 public static String showInputDialog(Component parentComponent,Object message,String title,int messageType),创建该对话框的代码如下:String s = JOptionPane.showInputDialog(null,“请输入一个整数:“,“输入“,JOptionPane.QUESTION_MESSAGE); 或 String s = JOptionPane.showInputDialog(“请输入一

32、个整数:“),字符串转换为数值,输入对话框返回值是一个字符串。 要把字符串转换为int 型值,使用Integer类的方法: int x=Integer.parseInt(intString); 要把字符串转换为double型值,使用Double类的方法: double d=Double.parseDouble(doubleString);,2.3.3 从控制台获取输入,在J2SE 5.0版的java.util包中提供了一个Scanner类,使用这个类我们可以方便地从键盘上读取各种类型的数据。 使用Scanner类创建对象读取来自System.in的输入:Scanner sc = new Sca

33、nner(System.in); Scanner类的其他常用方法如下所示:,public byte nextByte() 读取一个byte型数; public short nextShort() 读取一个short型数; public int nextInt() 读取一个int型数; public long nextLong() 读取一个long型数; public float nextFloat() 读取一个float型数; public double nextDouble() 读取一个double型数; public boolean nextBoolean() 读一个boolean型数;

34、public String nextLine() 读取一个String型字符串; public String next() 读取一个字符串; public void close() 关闭Scanner对象。,例:从键盘读取一个浮点数作为半径,输出圆的面积。import java.util.*;public class ComputeArea public static void main(String args)Scanner sc = new Scanner(System.in);System.out.print(“请输入圆的半径:“);double radius = sc.nextDoub

35、le();System.out.println(“Area=“+Math.PI*radius*radius); ,2.4 流程控制语句,流程控制语句: 顺序结构、选择结构和循环结构. 顺序结构:按照书写的顺序依次执行。 分支结构(选择结构):if-else, switch 循环结构:while, do-while, for 与程序转移有关的其它语句:break, continue, return 异常处理语句:try-catch-finally, throw(见第5章),分支语句 if 语句,1. if语句 (1)if(条件表达式) 语句1; (2)if(条件表达式)语句1; else 语句2

36、; (3)if else if else if else (4)if() if() 2. if语句的含义:当条件表达式结果为true时,执行语句1,然后继续执行if后面的语句。当逻辑表达式为false时,如果有else子句则执行语句2,否则跳过该if语句,继续执行后面的语句,必须得到一个逻辑值,public class IfDemo1 public static void main(String args) int i1=8,i2=5;if (i1=i2)System.out.println(i1+“=“+i2);elseSystem.out.println(i1+“+i2); ,public

37、 class ifDemo2 public static void main(String args) int testscore = 78; char grade;if (testscore = 90) grade = A;else if (testscore = 80)grade = B;else if (testscore = 70) grade = C;else if (testscore = 60) grade = D;else grade = E;System.out.println(“Grade = “ + grade); ,例:编程实现评定学生成绩等级,成绩由键盘输入。,说明:

38、If语句可以嵌套。嵌套时,Java规定else子句属于离它最近的if语句。想改变else的匹配关系,可以使用,例 if (firstVal= =0)if (secondVal= =1)firstVal+;elsefirstVal-;,例 if (firstVal= =0)if (secondVal= =1)firstVal+; elsefirstVal-;,当firstVal为0且second不为1时,执行firstVal-语句,当firstVal不为0时执行firstVal-语句,编程输出下面分段函数的结果1(x0) y= 0(x=0)-1(x0),public class ifc publ

39、ic static void main(String args ) int x=0;int y;if (x=0) if (x0)y=1; else y=0;else y=-1;System.out.println(“y=“+y); ,public class ifc public static void main(String args ) int x=-7;int y;if (x0) y=1;else if (x0) y=-1;else y=0;System.out.println(“y=“+y); ,2.switch语句:多重分支语句 格式:switch (表达式) case c1: 语句

40、组1;break;case c2: 语句组1;break;default: 语句组1;break; ,switch表达式与case常量表达式的类型可为byte、char、short、int类型,不能是关系表达式和逻辑表达式。,switch语句的含义:计算表达式的值,用该值依次和c1、 c2比较,如果等于其中之一,则执行其后的语句组,直到遇到break跳到switch语句之后。如果没有匹配的,则执行default之后的语句。,分支语句switch语句,与表达式类型一致,必须是常量,例2-11 switch (colorNum) case 0: setBackground(Color.red);

41、case 1: setBackground(Color.green); default: setBackground(Color.black); break; ,执行结果:背景颜色为黑色。如果colorNum的值为0,背景颜色将首先被设定为红色,然后为绿色,再为黑色。,例 switch (colorNum) case 0: setBackground(Color.red); break; case 1: setBackground(Color.green); break; default: setBackground(Color.black); break; ,当colorNum的值为0执行结

42、果?,练习:用switch结构改写ifDemo2 .java程序,如何修改为合理的程序?,public class switchDemo public static void main(String args) int testscore = 78;char grade;switch(testscore / 10) case 10:case 9: grade = A; break;case 8: grade = B; break;case 7: grade = C; break;case 6: grade = D; break;default: grade = E;System.out.pri

43、ntln(“Grade = “ + grade); ,练习:改写程序,使得分数在程序运行时随机输入。,注意事项,(1) switch语句只能取代if语句的部分功能,因为其只能对switch后括号内表达式的值与常量进行比较,而if语句可作多种比较。 (2) case 常量表达式出现次序可相互调换,不影响执行结果。 (3) 括号内的表达式只能为整型或字符型。 (4) 同一个switch语句不能有两个case常量值相等。 (5) 每一步之后必须用break语句终止,否则失去开关的效果。,循环语句,Java语言提供了4种循环语句: while循环 do-while循环 for循环 增强的for循环,循

44、环语句,一般情况下,一个循环结构包含四部分内容: 初始化部分(initialization) :设置循环开始时的程序状态。 循环条件(condition) :循环条件一般是一个布尔表达式,当表达式的值为true时执行循环体,为false时退出循环。 循环体部分(loop body): 需要重复执行的代码。 迭代部分(iteration) :改变变量的状态。,不能明确指明循环执行次数时,仅用逻辑表达式决定循环执行与否. while循环的一般格式如下:initializationwhile (condition )body of loopiteration 语义:计算逻辑表达式,为真时重复执行循环

45、体语句;直到逻辑表达式为假时结束。,循环语句 while循环,例:int i=0; while(i3)System.out.println(“Are you finished yet?”);i+; System.out.println(“Finally!”);,循环语句 while循环,例:int i=0; while(i+3)System.out.println(“Are you finished yet?”); System.out.println(“Finally!”);,Are you finished yet? Are you finished yet? Are you finish

46、ed yet? Finally!,Are you finished yet? Are you finished yet? Are you finished yet? Finally!,一般格式如下: initialization doloop body iteration while(termination);,含义:首先执行循环体语句,然后判断逻辑表达式的值,为真时重复执行循环体,直到表达式为假时。循环体至少执行一次。,改写上例 int i=0; do System.out.println(“Are you finished yet?”);i+; while(i3); System.out.

47、println(“Finally!”);,循环语句do 循环,改写上例 int i=0; do System.out.println(“Are you finished yet?”); while(+i3); System.out.println(“Finally!”);,练习,计算10的阶乘 计算110的阶乘和,计算10的阶乘 public class DoWhileDemo public static void main(String args) int n = 10;long result = 1;doresult *= n-;while(n = 1);System.out.printl

48、n(“10!=“ + result); ,计算110的阶乘和 public class DoWhileDemo1 public static void main(String args) int n = 1;long s=0,result = 1;doresult *= n+;s+=result;System.out.println(n-1+“!=“ + result);while(n = 10);System.out.println(“1!+2!+10!=“ + s); ,例:计算500以内最靠近500的既能被13整除又能被17整除的前10个数的和。,public class ch2_ex17 public static void main(String args) int I,j,k = 500,s = 0;I = 0;while(I 0) if(k %13 = 0 ,语法格式: for(初始语句;逻辑表达式;迭代语句)循环体; 2. 含义:先执行初始语句;判断逻辑表达式的值,为真时执行循环体语句;执行迭代语句;然后再去判断逻辑表达式的值。直到逻辑表达式的值为假时。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报