欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第2章语法基础优秀课件.ppt

    • 资源ID:53156276       资源大小:8.29MB        全文页数:110页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第2章语法基础优秀课件.ppt

    第2章语法基础第1页,本讲稿共110页本章主要介绍编写Java程序必须了解的语言基础知识,包括Java程序的结构、数据类型、变量、常量、表达式和流程控制语句等。第2页,本讲稿共110页import语句与C语言的include语句有本质的区别。import语句只指明要用到的类所在的位置,以便能在用到时可以加载;而C语言用include语句将要用的文件包含在源文件中,作为源文件编译成一个模块。这体现了Java语言的特点,用户只需要将模块编译一次。当用户在编写另一个模块用到已经编译的模块时,只要告诉编译程序它的位置,如用全限定名或者用import语句,编译程序无需再一次编译已经编译的模块,就能够将源文件编译通过。第3页,本讲稿共110页主类类体Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在Java Application中,主类是指包含main方法的类;在JavaApplet里,主类是系统类Applet的子类。主类是Java程序执行的入口点。Java程序中定义类使用关键字class,类的定义由类头和类体两部分组成。类体部分用来定义静态属性和方法这两种类的成员,类头部分除了声明类名外,还可以说明类的继承特性。第4页,本讲稿共110页语句:每一条Java语句都由分号(;)结束。类和方法中的所有语句用一对大括号括起。Java程序是由类定义组成的,每个类内部包括类的静态属性和方法两部分,表达式、变量、常量和关键字等是构成Java的语句的基础。其中变量与常量关键字是Java语言语法规定的保留字,用户程序定义的常量和变量的取名不能与保留字相同。第5页,本讲稿共110页2.2数据类型、变量与常量数据类型、变量与常量2.2.1数据类型表2.1列出了Java中定义的所有数据类型。特点如下:Java的各种数据类型占用固定的内存长度,与具体的软硬件平台环境无关;Java的每种数据类型都对应一个缺省的数值,使得这种数据类型的变量的取值总是确定的。这两点分别体现了Java的跨平台特性和安全稳定性。第6页,本讲稿共110页表2.1Java的基本数据类型第7页,本讲稿共110页boolean:表示布尔型。其变量或常量的取值只有true和false两个。true代表“真”,false代表“假”。byte:处理未经加工的二进制数据,每个byte型的常量或变量中包含8位(bit)的二进制信息。Java的字符类型采用了新的国际标准编码方案Unicode编码。每个Unicode码占用16个比特位,包含的信息量比ASCII码多了一倍。由于采用Unicode编码方案,有利于Java程序在基于不同语言的平台间的移植。第8页,本讲稿共110页除了基本数据类型外,Java中还有引用数据类型(reference),包括类和接口等。例如,对应基本的double类型,还存在着一个类Double。这些类在包含基本数据类型所表示的一定范围、一定格式的数值的同时,还包含了一些特定的方法,可以实现对数值的专门操作,如把字符串转换成双精度型数值等。两种数据类型:两种数据类型:基本数据类型和引用数据类型基本数据类型和引用数据类型第9页,本讲稿共110页注意:注意:(1)true、false和null为小写,而不是象在C+语言中那样为大写。严格地讲,它们不是关键字,而是文字。(2)无sizeof运算符,因为所有数据类型的长度和表示是固定的,与平台无关,不是象在C语言中那样数据类型的长度根据不同的平台而变化。这正是Java语言的一大特点。(3)goto和const不是Java编程语言中使用的关键字。第10页,本讲稿共110页2.2.2标识符标识符标识符:用来标识变量、常量、方法、对象和类等的存在,标识符可以由编程者自由指定,但Java对于标识符的定义有如下的规定:(1)标识符由字母、数字、下划线(-)、美元符号($)组成。(2)标识符必须以字母、下划线或美元符号开头。(3)对大小写敏感,class和Class,System和system分别代表不同的标识符。(4)应该使标识符能一定程度上反映它所表示的变量、常量、对象或类的意义。(5)标识符区分大小写,没有长度限制,可以为标识符取任意长度的名字。第11页,本讲稿共110页第12页,本讲稿共110页2.2.3常量常量:在程序运行过程中不发生变化的量。Java中常用的常量有布尔型、整型、字符、字符串和浮点。1.布尔常量布尔常量包括true和false,分别代表真和假。2.整型常量整型常量:用来给整型变量赋值。整型常量按照所占用的内存长度,可分为一般整型常量和长整型常量,一般整型常量占用32位,长整型常量占用64位。长整型常量的尾部有一个大写的L或小写的l,如-386L,017777l。第13页,本讲稿共110页2.浮点常量浮点常量表示的是可以含有小数部分的数值常量。根据占用内存长度的不同,可以分为一般浮点常量和双精度浮点常量两种。一般浮点常量占用32位内存,用F、f表示,如19.4F,2.0513E3;双精度浮点常量占64位内存,用带D或d或不加后缀的数值表示,如2.433E-5D,700041.273d,2.1415。浮点常量有一般表示法和指数表示法两种。第14页,本讲稿共110页4.字符常量:字符常量用一对单引号括起的单个字符表示,如a。转义符是有特殊含义的字符,如回车、换行等。所有的转义符都用反斜线()开头,后面跟着一个字符来表示某个特定的转义符,详见下表。第15页,本讲稿共110页5.字符串常量:用双引号括起的一串若干个字符(可以是0个)。字符串中可以包括转义符,标志字符串开始和结束的双引号必须在源代码的同一行上。在Java中可以使用连接操作符(+)把两个或更多的字符串常量串接在一起,组成一个更长的字符串。例如,Howdoyoudo?+n的结果是Howdoyoudo?n。第16页,本讲稿共110页2.2.4变量变量:在程序的运行过程中数值可变,通常用来记录运算中间结果或保存数据。变量必须先声明后使用,声明变量包括指明变量的数据类型和变量的名称,必要时还可以指定变量的初始数值。如:booleanm_bFlag=true;声明一个布尔类型的简单变量,名字为m_bFlag,该变量的初值是逻辑真。第17页,本讲稿共110页下面是其他几个变量声明的例子:charmyCharacter=B;longMyLong=-375;intm_iCount=65536;doublem_dScroe;第18页,本讲稿共110页声明变量又叫创建变量,执行变量声明语句时系统根据变量的数据类型在内存中开辟相应的空间并登记变量名称、初始值等。Java的变量有其生存期和有效范围,Java用大括号将若干语句组成语句块,变量的有效范围就是声明它的语句所在的语句块。第19页,本讲稿共110页例2-1UseVariable.javapublicclassUseVariablepublicstaticvoidmain(Stringargs)booleanb=true;shortsi=128;inti=-99;longl=123456789L;charch=J;floatf=2.1415925F;doubled=-1.04E-5;Strings=Hello!;System.out.println(布尔型变量b=+b);System.out.println(短整型变量si=+si);System.out.println(整型变量i=+i);System.out.println(长整型变量l=+l);System.out.println(字符型变量ch=+ch);System.out.println(浮点型变量f=+f);System.out.println(双精度型变量d=+d);System.out.println(字符型对象s=+s);第20页,本讲稿共110页例2-1的运行结果如下:第21页,本讲稿共110页上例子中定义了若干个变量并用相应类型的常量为它们赋初始值。String不是基本数据类型,而是一个系统定义的类名,每一个字符串变量实际上都是一个字符串对象。但是由于字符串是十分常用的对象。第22页,本讲稿共110页例2-2getNumber.javaimportjava.io.*;publicclassgetNumberpublicstaticvoidmain(Stringargs)inti=0;Strings;trySystem.out.print(请输入一个整数:);BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in);s=br.readLine();i=Integer.parseInt(s);catch(IOExceptione)System.out.print(输入的数据是:+i+.);运行结果如下:第23页,本讲稿共110页上例从键盘输入一个字符串,然后把它转化成整型数据并输出。上例利用系统定义的方法Integer.parseInt()可以把把字符串转化成值。其中Integer是系统定义的一个类,对应基本数据类型int,parseInt()是Integer类的一个方法,可以把数字字符组成的字符串转化成整型数据。另一个方法是:Integer.valueOf(Strings).intValue();方法System.out.print()的用法和作用与System.out.println()基本相同,其区别是输出了数据后并不回车。第24页,本讲稿共110页例2-3getDouble.javaimportjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassgetDoubleextendsAppletimplementsActionListenerLabelprompt;TextFieldinput;doubled=0.0;publicvoidinit()prompt=newLabel(输入一个浮点数:);input=newTextField(10);add(prompt);add(input);input.addActionListener(this);publicvoidpaint(Graphicsg)g.drawString(输入的数据是:+d,10,50);publicvoidactionPerformed(ActionEvente)d=Double.valueOf(input.getText().doubleValue();/或者d=Double.ParseDouble(input.getText();repaint();第25页,本讲稿共110页运行结果如下运行结果如下:第26页,本讲稿共110页上例是图形界面下的JavaApplet程序。用户在文本框对象input中输入字符串并回车后,程序接受用户的输入.利用Double.valueOf().doubleValue()将这个字符串转化为浮点数据并赋值给双精度变量d。actionPerformed()方法中的方法repaint()是系统已定义好的一个方法,这个方法将强行调用paint(),把变量d中的数据显示出来。第27页,本讲稿共110页2.3表达式表达式表达式:由变量、常量、对象、方法调用和操作符组成的式子。组成表达式的Java操作符有很多种,包括赋值运算、算术运算、关系运算和逻辑运算等。第28页,本讲稿共110页2.2.1赋值与强制类型转换赋值运算符:给程序里的变量或对象赋值。简单的赋值运算是把一个表达式的值直接赋给一个变量或对象,格式如下:变量或对象=表达式;其中赋值号右边的表达式可以是常量、另一个变量或对象以及方法的返回值。赋值运算的例子如下:i=0;j=i;k=i+j*5;MyFirstString=MyDouble.toString();MySecondString=MyFirstString;第29页,本讲稿共110页注意:当赋值号的左边是一个对象名时,赋值运算符把右边表达式所得的对对象象的的引引用用赋值给它,而不是为这个对象开辟新的内存空间并把右边对象的所有内容赋值给它。在使用赋值运算时,有时会出现等号左边的数据类型和等号右边的数据类型不一致的情况,这时需要把等号右边的数据类型转化成等号左边的数据类型。某些情况下,系统可以自动完成这种类型转换,另一些情况下就要用到强制类型转换。第30页,本讲稿共110页Java类型转换的规定:凡是将变量从占用内存较少的短数据类型转化成占用内存较多的长数据类型时,可以不做显式的类型转换声明;但将变量从较长的数据类型转换成较短的数据类型时,必须做强制类型转换。下面的例子分别定义了16位的字节类型变量MyByte和32位的整数类型变量MyInteger:byteMyByte=10;intMyInteger=-1;第31页,本讲稿共110页byteMyByte=10;intMyInteger=-1;若把MyByte的值赋给MyInteger,则可直接写成:MyInteger=MyByte;如果把MyInteger的值赋给MyByte,则必须写成:MyByte=(byte)MyInteger;先把变量MyInteger中保存的数值的数据类型从int变成byte后才能赋给MyByte,其中,(byte)就是在做强制类型转换。第32页,本讲稿共110页强制类型转换的一般格式是:(数据类型)变量名或表达式第33页,本讲稿共110页2.2.2算术运算算术运算算术运算是针对数值类型操作数进行的运算。算术运算符根据需要的操作数个数的不同,可以分为双目运算符和单目运算符两种。第34页,本讲稿共110页1.双目运算符:双目算术运算符第35页,本讲稿共110页注意:(1)只有整型(int,long,short)数据可以取余,float和double不能取余。(2)两个整数做除法时,结果是截取商数的整数部分。如果希望保留小数部分,要做强制类型转换。例如1/2的结果是0,而(float)1)/2的结果是0.5。第36页,本讲稿共110页2.单目运算符单目运算符的操作数只有一个,算术运算中有三个单目运算符。单目算术运算符如下:第37页,本讲稿共110页单目运算符中的自增和自减,其运算符的位置可以在操作数的前面,也可以在操作数的后面;当进行单目运算的表达式位于一个较复杂的表达式内部时,单目运算符的位置将决定单目运算与复杂表达式二者执行的先后顺序。如下面的例子里,单目运算符在操作数变量的前面,则先执行单目运算,修改变量的值后用这个新值参与复杂表达式的运算。intx=2;inty=(+x)*3;运算执行的结果是x=3,y=9。第38页,本讲稿共110页在例中,由于单目运算符放在操作数变量的后面,则先计算复杂表达式的值,最后再修改变量的取值。intx=2;inty=(x+)*3;运算执行的结果是x=3,y=6。第39页,本讲稿共110页例MyTestArithmetic.javaimportjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassUseArithmeticextendsAppletimplementsActionListenerLabelprompt;TextFieldinput1,input2;Buttonbtn;inta=0,b=1;publicvoidinit()prompt=newLabel(请输入两个整型数据:);input1=newTextField(5);input2=newTextField(5);btn=newButton(计算);add(prompt);add(input1);add(input2);add(btn);btn.addActionListener(this);publicvoidpaint(Graphicsg)g.drawString(a+b+=+(a+b),10,50);g.drawString(a+-+b+=+(a-b),10,70);g.drawString(a+*+b+=+(a*b),10,90);g.drawString(a+/+b+=+(a/b),10,110);g.drawString(a+%+b+=+(a%b),10,130);publicvoidactionPerformed(ActionEvente)a=Integer.parseInt(input1.getText();b=Integer.parseInt(input2.getText();repaint();第40页,本讲稿共110页上例是图形界面中的JavaApplet程序,它利用两个文本框对象input1和input2接受用户输入的两个数据。当用户单击按钮“计算”时,程序将把这两个字符串转化为整型数据赋值给同类的两个变量a和b,然后通过repaint()方法调用paint()方法,以a和b为操作数,计算它们四则运算的结果并输出。运行结果如下:第41页,本讲稿共110页2.2.3关系运算关系运算是比较两个数据之间的大小关系的运算,常用的关系运算列于下表中:运算符运算=等于!=不等于大于=大于等于+b+=+(ab),10,50);g.drawString(a+b+=+(a=+b+=+(a=b),10,90);g.drawString(a+=+b+=+(ay&x+=y-;第47页,本讲稿共110页在计算布尔型的变量b的取值时,先计算&左边的关系表达式xy,得结果为假,根据逻辑与运算的规则,只有参加与运算的两个表达式都为真时,最后的结果才为真;所以不论&右边的表达式结果如何,整个式子的值都为假,右边的表达式就不予计算执行了;最后三个变量的取值分别是:x为3,y为5,b为false。第48页,本讲稿共110页如果把上题中的简洁与(&)换为非简洁与(&),则与号两边的两个表达式都会被运算,最后三个变量的取值分别是:x为4,y为4,b为false。同理,对于简洁或(|),若左边的表达式的运算结果为真,则整个或运算的结果一定为真,右边的表达式就不会再运算执行了。第49页,本讲稿共110页例UseLogical.javabooleana=true,b=false;publicvoidpaint(Graphicsg)g.drawString(a+&+b+=+(a&b),10,50);g.drawString(a+&+b+=+(a&b),10,70);g.drawString(a+|+b+=+(a|b),10,90);g.drawString(a+|+b+=+(a|b),10,110);g.drawString(a+b+=+(ab),10,130);g.drawString(!+b+=+(!b),10,150);publicvoidactionPerformed(ActionEvente)a=Boolean.valueOf(input1.getText().booleanValue();b=Boolean.valueOf(input2.getText().booleanValue();repaint();第50页,本讲稿共110页修改程序,利用系统定义的方法Boolean.valueOf().booleanValue()将用户输入的字符串转化成布尔型数据;修改paint()方法,使之显示两个布尔型量逻辑运算的结果。第51页,本讲稿共110页2.2.5位运算位运算是对操作数以二进制比特位为单位进行的操作和运算,位运算的操作数和结果都是整型量。几种位运算符和相应的运算规则列于表。第52页,本讲稿共110页移位运算是将某一变量所包含的各比特位按指定的方向移动指定的位数,下表是三个移位运算符的例子。第53页,本讲稿共110页2.2.6其他运算符1.三目条件运算符?:三目条件运算符的形式是:x?y:z其规则是,先计算表达式x的值,若x为真,则运算的结果为y;否则为z。如下面的例子:intx=5,y=8,z=2;intk=x3?y:z;/x0?x:-x;/y为x的绝对值第54页,本讲稿共110页2.复杂赋值运算符复杂赋值运算符是在先进行某种运算之后,再把运算的结果做赋值。下表列出了所有的复杂赋值运算。第55页,本讲稿共110页复杂赋值运算符第56页,本讲稿共110页2.括号与方括号括号运算符()在某些情况下起到改变表达式运算先后顺序的作用;在另一些情况下代表方法或函数的调用。它的优先级在所有的运算符中最高。方括号是数组运算符,它的优先级很高。4.对象运算符(instanceof)对象运算符instanceof:测定一个对象是否属于某一个指定类或其子类的实例,如果是则返回true,否则返回false。例如:booleanb=MyObjectinstanceofTextField;第57页,本讲稿共110页5运算符运算符用于访问对象实例或者类的类成员函数。6new运算符new运算符用于创建一个新的对象或者新的数组。第58页,本讲稿共110页2.2.7运算符的优先级与结合性运算符的优先级决定了表达式中不同运算执行的先后顺序。运算符的结合性决定了并列的相同运算的先后执行顺序。运算符的结合性是指:当有两个或多个优先级别相同的运算符并列时,运算符的结合规则决定哪个先算.下表列出了Java主要运算符的优先级和结合性。第59页,本讲稿共110页Java运算符的优先级与结合性:第60页,本讲稿共110页2.2.8注释注释是程序不可少的部分。Java的注释符有两种。一种是行注释符“/”,以“/”开头到本行末的所有字符被系统理解为注释,不予编译。如:/Thisatestprogramofwhatistobedone另一种注释符是块注释符“/*”和“*/”,其中“/*”标志着注释块的开始,“*/”标志着注释块的结束。“/*”和“*/”可以括起若干个注释行。如:/*程序名:项目名:编写时间:功能:输入/输出:*/第61页,本讲稿共110页2.4流程控制语句流程控制语句:控制程序中各语句执行顺序的语句,是程序中非常关键和基本的部分。流程控制语句可以把单个的语句组合成有意义的,能完成一定功能的小逻辑模块,熟练运用流程控制语句会影响所编写程序的质量。最主要的流程控制方式是结构化程序设计中规定的三种基本流程结构。第62页,本讲稿共110页2.4.1结构化程序设计的三种基本流程结构化程序设计的三种基本流程结构化程序设计的原则:任何程序都可以且只能由三种基本流程结构构成,包括顺序结构、分支结构和循环结构。第63页,本讲稿共110页顺序结构:语句按照书写的顺序依次执行分支结构:即选择结构,根据计算所得的表达式的值来判断应选择执行哪一个流程的分支循环结构:在一定条件下反复执行一段语句。Java语言在局部的语句块内部,仍然需要借助于结构化程序设计的基本流程结构来组织语句,完成相应的逻辑功能。Java的语句块是由一对大括号包含的若干语句的集合。Java中,有专门负责实现分支结构的条件分支语句和负责实现循环结构的循环语句。第64页,本讲稿共110页2.4.2分支语句Java中的分支语句有两个,一个是负责实现双分支的if语句,另一个是负责实现多分支的开关语句switch。1.if语句if语句的一般形式:if(条件表达式)语句块;/if分支else语句块;/else分支第65页,本讲稿共110页条件表达式:判断程序的流程走向。如果条件表达式的取值为真,则执行if分支的语句块,否则执行else分支的语句块。在编写程序时,也可以不书写else分支,此时若条件表达式的取值为假,则绕过if分支直接执行if语句后面的其他语句。语法格式如下:if(条件表达式)语句块;/if分支其他语句;第66页,本讲稿共110页例FindMax.javaimportjava.awt.*;importjava.applet.*;importjava.awt.event.*;publicclassFindMaxDataextendsAppletimplementsActionListenerLabelprompt;TextFieldinput1,input2,input3;Buttonbtn;inta,b,c,d;publicvoidinit()prompt=newLabel(请输入一个实数:);input1=newTextField(20);input2=newTextField(20);input3=newTextField(20);btn=newButton(确认);add(input1);add(input2);add(input3);add(btn);add(prompt);btn.addActionListener(this);publicvoidactionPerformed(ActionEvente)a=Integer.parseInt(input1.getText();b=Integer.parseInt(input2.getText();c=Integer.parseInt(input2.getText();d=a;if(d=b)d=b;if(d=c)d=c;prompt.setText(最大数为:+d);第67页,本讲稿共110页例程接受用户输入的三个整数,在用户单击“确认”按钮后程序调用方法actionPerformed()比较并输出其中的最大值。第68页,本讲稿共110页2.switch语句switch语句是多分支的开关语句,它的一般格式如下:switch(表达式)case判断值1:语句块1/分支1case判断值2:语句块2/分支2case判断值n:语句块n/分支ndefault:语句块n+1/分支n+1第69页,本讲稿共110页switch语句在执行时,首先计算表达式的值,表达式的值必须是整型或字符型,同时应与各个case分支的判断值的类型相一致。计算出表达式的值之后,将它先与第一个case分支的判断值相比较,若相同,则程序的流程转入第一个case分支的语句块;否则,再将表达式的值与第二个case分支相比较依此类推。如果表达式的值与任何一个case分支都不相同,则转而执行最后的default分支;在default分支不存在的情况下,则跳出整个switch语句。注意:switch语句的每一个case判断,都只负责指明流程分支的入口点,而不负责指定分支的出口点,分支的出口点需要编程人员用相应的跳转语句来标明。第70页,本讲稿共110页例:switch(MyGrade)caseA:MyScore=5;caseB:MyScore=4;caseC:MyScore=3;default:MyScore=0;第71页,本讲稿共110页假设变量MyGrade的值为“A”,执行完switch语句后,变量MyScore的值被赋成0,而不是5!因为case判断只负责指明分支的入口点,表达式的值与第一个case分支的判断值相匹配后,程序的流程进入第一个分支,将MyScore的值置为5。由于没有专门的分支出口,所以流程将继续沿着下面的分支逐个执行,MyScore的值被依次置为4,3,最后变成0。如果希望程序的逻辑结构正常完成分支的选择,则需要为每一个分支另外编写退出语句。第72页,本讲稿共110页修改后的例子如下:switch(MyGrade)caseA:MyScore=5;break;caseB:MyScore=4;break;caseC:MyScore=3;break;default:MyScore=0;第73页,本讲稿共110页break是流程跳转语句。在某些情况下,switch语句的这个只有分支入口、没有出口的功能也有它独特的适用场合。例如在很多判断值共享同一个分支时,就可以实现由不同的判断语句流入相同的分支。修改上例如下:switch(MyGrade)caseA:caseB:caseC:MyScore=1;/及格break;default:MyScore=0;/不及格第74页,本讲稿共110页2.4.3循环语句循环结构:在一定条件下,反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环结构由循环语句来实现。Java的循环语句共有三种:while、do-while和for。结构图如下:第75页,本讲稿共110页1.while语句while语句的一般语法格式如下:while(条件表达式)循环体条件表达式的值是布尔型,循环体可以是单个语句或复合语句块。while语句的执行过程:先判断条件表达式的值,若为真,则执行循环体,循环体执行完之后再无条件转向条件表达式再做计算与判断;当计算出条件表达式为假时,跳过循环体执行while语句后面的语句。第76页,本讲稿共110页importjava.awt.*;importjava.applet.*;importjava.awt.event.*;publicclassNarcissusextendsAppletimplementsActionListenerLabelprompt;TextFieldinput1,input2,input3;Buttonbtn;inta=100,b,c,d,i=10;publicvoidinit()prompt=newLabel(找出10000以内的水仙花数:);btn=newButton(确认);add(prompt);add(btn);btn.addActionListener(this);setSize(400,300);例Narcissus.java(找出1000以内的所有的水仙花数)publicvoidpaint(Graphicsg)while(a=999)b=a/100;c=(a-b*100)/10;d=a%10;if(a=(b*b*b+c*c*c+d*d*d)g.drawString(a+是水仙花数,10,i);i+=20;a+;publicvoidactionPerformed(ActionEvente)第77页,本讲稿共110页上例的功能是找出1000以内所有的水仙花数并输出。水仙花数是三位数,它的各位数字的立方和等于这个三位数本身。第78页,本讲稿共110页2.do-while语句do-while语句的语法结构如下:do循环体while(条件表达式);do-while语句的使用与while语句类似,但它是先执行一遍循环体,再来判断条件表达式。若表达式的值为真,则再运行循环体,否则跳出do-while循环,执行下面的语句。do-while语句的特点是它的循环体将至少被执行一次。第79页,本讲稿共110页例showCharValue.javaimportjava.io.*;publicclassshowCharValuepublicstaticvoidmain(Stringargs)charch;trySystem.out.println(请输入一个字符,以#结束);doch=(char)System.in.read();System.out.println(字符+ch+的整数值为+(int)ch);System.in.skip(2);/跳过回车键while(ch!=#);catch(IOExceptione)System.err.println(e.toString();第80页,本讲稿共110页上例是字符界面的JavaApplication程序,它接受用户输入的一个字符后输出这个字符整型数值。程序结果如下:第81页,本讲稿共110页2.for语句for语句是Java语言三个循环语句中功能较强,使用较广泛的一个。for语句的一般语法格式如下:for(表达式1;表达式2;表达式3)循环体其中表达式2是返回布尔值的条件表达式,用来判断循环是否继续;表达式1完成初始化循环变量和其他变量的工作;表达式3用来修整循环变量,改变循环条件,三个表达式之间用分号隔开。第82页,本讲稿共110页for语句的执行过程:先计算表达式1;再判断表达式2的值,若为真,则执行循环体,执行完循环体后,返回表达式3,计算并修改循环条件。第二轮循环从计算并判断表达式2开始,若表达式的值仍为真,则继续循环,否则跳出整个for语句执行下面的句子。for语句的三个表达式都可以为空,但若表达式2也为空,则表示当前循环是一个无限循环,需要在循环体中书写另外的跳转语句终止循环。第83页,本讲稿共110页下面的例子是应用for循环输出10000之内的所有完全数。完全数是等于其所有因子和(包括1但不包括这个数本身)的数。例如6123,6123,则6是一个完全数。第84页,本讲稿共110页publicclassPerfectNumpublicstaticvoidmain(Stringargs)intcount=1;for(inti=1;i10000;i+)inty=0;for(intj=1;ji;j+)if(i%j=0)y+=j;if(y=i)System.out.print(i+String.valueOf(t);count+;if(count%3=0)System.out.println();PerfectNum.java第85页,本讲稿共110页运行结果如下:第86页,本讲稿共110页2.4.4跳转语句跳转语句用来实现程序执行过程中流程的转移。前面在switch语句中使用过的break语句就是一种跳转语句。为了提高程序的可靠性和可读性,Java语言不支持无条件跳转的goto语句。Java的三个跳转语句:continue、break和return。第87页,本讲稿共110页1.continue语句语句continue语句必须用于循环结构中,它有如下两种使用形式:1、不代标号的continue语句,其作用是终止当前这一轮的循环,跳过本轮剩余的语句,直接进入当前循环的下一轮。在while或dowhile循环中,不带标号的continue语句会使流程直接跳转至条件表达式。在for循环中,不带标号的continue语句会跳转至表达式3,计算修改循环变量后再判断循环条件。第88页,本讲稿共110页2、带标号的continue语句,其格式是:continue标号名;其中标号名要定义在程序中外层循环语句的前面,用来标志这个循环结构。标号的命名应符合Java标识符的规定。带标号的continue语句使程序的流程直接转入标号标明的循环层次。第89页,本讲稿共110页下面查找1100之间的素数的例子中使用了带标号的continue语句。如果找到整数i的一个因子j,则说明这个i不是素数。程序将跳过本轮循环剩余的语句直接进入下一轮循环,检查下一个数是否是素数。First-Loop:for(inti=1;i100;i+)for(intj=2;ji;j+)if(i%j=0)continueFirst-Loop;System.out.println(i);/屏幕标准输出第90页,本讲稿共110页2.break语句break语句的作用:使程序的流程从一个语句块内部跳转出来,如从switch语句的分支中跳出,或从循环体内部跳出。break语句也有带标号和不带标号两种形式。带标号的break语句的使用格式是:break标号名;这个标号应该标志某一个语句块。执行break语句就从这个语句块中跳出来,流程进入该语句块后面的语句。不带标号的break语句从它所在的switch分支或最内层的循环体中跳转出来,执行分支或循环体后面的语句。第91页,本讲稿共110页说明:使用break语句只能跳出一层循环,提前结束循环的执行。在多层循环中,从内层循环跳到外层,提前结束外层循环的的执行,则需要在外层循环使用标识符标号。第92页,本讲稿共110页2.return语句return语句的一般格式是:return表达式;return语句:使程序流程从方法调用中返回,表达式的值就是调用方法的返回值。如果方法没有返回值,则return语句中的表达式可以省略。第93页,本讲稿共110页2.5小结本章详细介绍了Java语言的基础知识,包括Java程

    注意事项

    本文(第2章语法基础优秀课件.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开