JAVA程序设计语言基础.ppt

上传人:小飞机 文档编号:5436165 上传时间:2023-07-06 格式:PPT 页数:129 大小:2.22MB
返回 下载 相关 举报
JAVA程序设计语言基础.ppt_第1页
第1页 / 共129页
JAVA程序设计语言基础.ppt_第2页
第2页 / 共129页
JAVA程序设计语言基础.ppt_第3页
第3页 / 共129页
JAVA程序设计语言基础.ppt_第4页
第4页 / 共129页
JAVA程序设计语言基础.ppt_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《JAVA程序设计语言基础.ppt》由会员分享,可在线阅读,更多相关《JAVA程序设计语言基础.ppt(129页珍藏版)》请在三一办公上搜索。

1、第2章 Java程序设计语言基础,掌握Java常用的开发工具掌握Java程序的基本结构掌握Java语言的基本控制流程能使用Java语言编写较为复杂的应用命令行程序,课程目标,Java开发环境Java语言基础Java控制结构,目 录,Java开发环境,了解JAVA开发环境掌握J2SDK的安装和环境变量的设置方法理解path和classpath的作用学会创建第一个java应用程序并成功运行初步掌握编写java程序的注意事项,上节回顾:Java的编译与执行,Java平台,Java平台的概念平台:为程序提供运行环境的硬件和操作系统的总称Java平台:纯软件的,为Java提供统一的运行环境Java平台的

2、组成结构Java虚拟机(JVM)Java应用程序接口(Java API)Java类库,Java平台,Java平台的组成结构Java虚拟机:解释并运行Java二进制码Java API:由许多软件包组成,这些软件包可以实现很多功能,包括图形界面功能,Java平台,Java应用程序接口的主要内容,Java开发环境,从网站上免费下载J2SDK(Java2 Software Development Kit),并利用命令行方式操作javac(编译器);java(解释器)Java集成开发环境(IDE)有:NetBeans、Eclipse等 J2SDK的安装(演示),Java开发环境目录结构,安装SDK后产生

3、如下目录结构:bin目录:Java开发工具,包括Java编译器、解释器等demo目录:一些实例程序lib目录:Java开发类库jre目录:Java运行环境,包括Java虚拟机、运行类库等,Java开发环境开发工具介绍,javac.exe-Java编译器,用来将java程序编译成Bytecode。java.exe-Java解释器,执行已经转换成Bytecode的 Java应用程序。通常被人们称为Java虚拟机。jdb.exe-Java调试器,用来调试Java程序。javap.exe-反编译(将.class文件还原为.java)。javadoc.exe-文档生成器,创建HTML文件。appletv

4、iwer.exe-Applet解释器,用来解释已经转换成Bytecode的Java小应用程序。,Java开发环境,设置环境变量在Windows 2000和Window XP系统下,可以选择【控制面板】|【系统】|【高级】|【环境变量】。在出现的环境变量窗口中包含【用户变量】和【系统变量】,在系统变量框中选择【path】,单击【编辑】按钮,在弹出的【编辑系统变量】窗口的【变量值】框最后加上;JDK安装路径bin;,Java语言开发环境,什么是环境变量 查看环境变量的两种方式如何设置系统环境变量 path环境变量的作用%path%的意义如何解决使用java命令中的问题,Java语言开发环境,实际操

5、作讲解classpath的作用Java解释器是如何处理当前目录的如何解决当前目录的问题配置classpath的几个注意事项,创建第一个Java程序(1/4),1.用记事本编写源程序:,创建第一个Java程序(1/4),源程序:/*文件名:FirstApp.java*功 能:显示天天好心情!*编写:张三*编写时间*修改:李四*修改时间*/public class FirstApp public static void main(String args)/显示天天好心情!System.out.println(天天好心情!);,类的名称,指明类为公共的类,程序的入口,程序中的语句,命令行参数,创建第

6、一个Java程序(1/4),创建第一个Java程序(1/4),中文标点符号问题中文的分号和英文的分号很相似,但中文的分号后面有空白,英文的分号后面没有中文的右引号特别容易在输入中文字符串时出现,往往是在输入中文后随手输入了引号的缘故例子对比:中文的分号“;”和英文的分号“;”中文右引号,如:天天好心情!”,关于Java应用程序的说明,Java中的基本程序单位是类,每一个程序中应该有一个公共类,2.public class FirstApp就是声明了一个公共类,3.其中FirstApp是类的名称,是由用户指定的,4.公共类的名称必须与文件名一致,5.每一个Java应用程序必须定义一个main方法

7、 public static void main(String args),6.如果在一个java程序文件中定义了多个类,则只能有一个public的,main方法必须在public的类里面,创建第一个Java程序(2/4),2.保存源程序选定一个目录,如C:Java来保存文件在“文件名”一栏敲入“FirstApp.java”,“保存类型”一栏选“所有文件”需要注意的问题不要忘记了文件保存在什么位置文件类型要选“所有文件”,并敲入扩展名,否则可能保存为以txt为后缀的文本文件,创建第一个Java程序(3/4),3.编译源程序选“程序”“附件”“命令提示符”:闪烁的光标,表示在这里输入命令。光标前

8、的 为当前路径。,创建第一个Java程序(3/4),敲入:cd Java,进入 目录下 敲入:dir,显示该目录下的所有文件其中“FirstApp.java”就是保存的Java源文件,创建第一个Java程序(3/4),敲入:javac FirstApp.java 几秒钟后,如果提示符 重新出现,没有提示任何信息,说明编译成功了。编译成功之后,将产生一个字节码文件FirstApp.class,它的文件名与类名相同,相当于其它语言程序的可执行文件,创建第一个Java程序(3/4),再次敲入dir命令,可以看到多了一个文件:字节码文件:以.class作为文件后缀,创建第一个Java程序(4/4),4

9、.执行Java程序敲入命令:java FirstApp运行结果显示如下:祝贺你,你的第一个程序运行成功了!,JAVA Applet简介,在Java中可以编写两类程序:应用程序(Applications)常见的应用程序Java Applet(小应用程序)。Java Applet是一种可以嵌入到HTML文档(即Web页)中的Java程序。当浏览器装入一个含有applet的Web页时,applet下载到该浏览器中,并开始执行。Applet可以在Internet中传输并在兼容Java的Web浏览器中运行。,JAVA Applet编写,import java.awt.*;import java.appl

10、et.*;public class HelloWorldApplet extends Applet public void paint(Graphics g)super.paint(g);g.drawString(“Hello World!”,30,30);该程序的功能是:在坐标(30,30)处输出字符串“Hello World!”。在这个程序中,没有实现main()方法,这是Applet与Application(应用程序)的区别之一。为了运行该程序,首先也应将其保存到一个名为HelloWorldApplet.java的文件中,然后对其进行编译:D:Jjavaworkjavac HelloWo

11、rldApplet.java这样将得到字节码文件HelloWorldApplet.class。由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,然后将Applet嵌入其中,接着使用appletviewer来运行,或在支持Java的浏览器上运行。,JAVA Applet编写,该HTML文件如下。My Applet 其中,使用标记来启动HelloWorldApplet,code属性指明字节码所在的文件,width和height属性指明applet所占区域范围。最后,我们将此HTML文件存入AppletExp.html,然后运行:C:JavaBookapple

12、tviewer AppExp.html此时,将弹出一个Applet浏览窗口,在其中指定区域显示“Hello World!”。,JAVA IDE,IDE(Integrated Development Environment)集成开发环境如:NetBeans、Eclipse、JCreator 等,第1周作业,1、自己动手搭建好Java环境2、复习本章、预习下章,Java开发环境Java语言基础Java控制结构,目 录,Java程序的基本结构,JAVA语言基础,标识符与关键字、分隔符基本数据类型、变量和常量操作运算符及表达式Java的输入输出,JAVA基本语法,java代码的位置 java是严格区分

13、大小写的 java是一种自由格式的语言 代码分为结构定义语句和功能执行语句功能执行语句的最后必须用分号结束,标识符,在编写应用程序时,程序员对程序中的各个元素(变量、常量、对象、类、属性、方法)加以命名时使用的命名记号称为标识符(identifer)。JAVA标识符的命名规则:以英文字母,下划线_,或者美元符号$开头(即不能以数字开头);由以上三种字符与数字0到9的组合;标识符各字符之间不能有空格;最大长度65535;区分大小写,如_Student和_student是两个不同的标示符。,标识符,判断下列标识符是否合法3d、$1000、Letter#、x0y、while、pri*i良好的编程习惯

14、在定义标识符时,应该能反映它表示的变量、对象、类的意义;如:studentName或student_name习惯上,表示类、接口名的标识符用大写字母开头,表示变量、方法名的标识符用小写字母开头,表示常量名的标示符全部用大写字母;标示符最好不用$。,关键字,Java系统使用(保留)的关键字(Keyword)很多,它们有明确的含义,不能另做它用。关键字也叫保留字。程序员在编写JAVA程序时,使用的标识符一定不能包含如下页图所示的关键字。,Java关键字,分隔符,1、注释在java语言中,可以采用三种注释方式:单行注释,形式为:/注释内容多行注释(块注释),形式为:/*注释内容*/文档注释,形式为:

15、/*注释内容*/,这是java所特有的一种注释,是为支持javadoc而设计的。注意参考教材第24页。,分隔符,2、空白符包括空格符、回车符、制表符3、普通分隔符 具有明确的语法含义,要按照语法规定去使用。大括号():用于定义类体、方法体、复合语句分号(;):添加在功能语句之后逗号(,):用于分隔变量声明时的各个变量和方法的各个参数等冒号(:):用于标号和语句之间,基本数据类型,数据类型是程序设计语言中的基本概念,它包括两部分,取值范围(不同类型的数据在计算机中所占用的内存空间大小不同)和在这些值上所允许的操作,定义一个类型就限定了这两部分。,基本数据类型,数据类型,基本数据类型,引用数据类型

16、,数值型,字符型(char),布尔型(boolean),整数类型(byte,short,int,long),浮点类型(float,double),类(class),接口(interface),数组,基本数据类型,true或false,变量定义/数据类型,在Java语言中,变量按下列方式定义,1.变量的类型 变量名称;,2.变量的类型 变量名称1,变量名称2,;,3.变量的类型 变量名称 变量的值;,变量定义/数据类型,变量定义的例子int number;int number1,number2=5,number3;float pi;float PI=3.1416f;,注意:给float型的变量赋

17、值时,值的后面要写一个f或者F,变量定义/数据类型,更多变量定义的例子long number;long cont=1357924680L;,注意:给long型的变量赋值时,值的后面要写一个l 或者L,变量定义/数据类型,更多变量定义的例子double db;double max=1357924680d;,声明了一个双精度的浮点型变量db,声明了一个双精度的浮点型变量,并且给它赋了值,注意:给double型的变量赋值时,值的后面可以写一个d 或者D,也可以什么都不写,变量定义/数据类型,更多变量定义的例子boolean tf;tf=false;,声明了一个布尔型变量tf,给tf赋了值,注意:bo

18、olean型的变量只有true和false这两个值,区别于C+中的1和0,变量定义/数据类型,更多变量定义的例子char c;c=A;,声明了一个字符型变量c,给字符型变量c赋值A,注意:给char型的变量赋值时,值要用单引号括起来,变量定义/数据类型,更多变量定义的例子对于整型数而言,除了可以给它赋值一个10进制的数,还可以使用8进制和16进制的数,声明一个短整型变量,并且给它赋个8进制的值:07,声明一个整型变量,并且给它赋个16进制的值:2B,8进制的数以0开头,16进制数以0 x或0X开头,short st=07;int n=0X2B;,变量定义/数据类型,还有一种数据类型叫字符串,S

19、tring,声明了一个字符串s1,声明了一个字符串s2,并且给它赋了值,String s1;,String s2=“Hello World!”;,字符串不属于基本数据类型,但在声明或者定义一个字符串的时候,可以象声明一个基本数据类型的变量那样做。,变量定义注意事项,没有声明变量就使用是错误的,重复定义变量也是错误的。变量在赋值后才能使用。变量的作用域:指变量的有效作用范围。一个变量的作用域是从它的声明处开始,到它所在的程序块(block)结束。程序块是指由界定符号“”确定的程序段。例如一个类体,一个方法体。,变量的作用域-实例,class examplestatic int n1=9;publ

20、ic static void display()int n2=200;n1=n1+n2;System.out.println(n1=+n1);System.out.println(n2=+n2);public static void main(String args)int n3;n3=n1+2;System.out.println(n1=+n1);System.out.println(n3=+n3);System.out.println();display();,练习:基本数据类型的使用(1),下面代码的输出结果是什么?,int i=10;System.out.println(i);i=15

21、;System.out.println(i);,输出结果:1015,练习:基本数据类型的使用(2),int i;System.out.println(i);int i=15;System.out.println(i);,错误2:重复定义变量i。,错误1:在给变量i赋值前使用它。,下面代码中的两个错误是什么?,练习:基本数据类型的使用(3),没有任何错误。x先被赋予值15.0,然后x被给定一个新的值150.0。,下面的代码中有错吗?,double x=15.0;x=x*10;System.out.println(x);,练习:基本数据类型的使用(4),假设有两个int型变量one和two,编写代

22、码交换它们的值。,int one=10;int two=20;,System.out.println(one);System.out.println(two);,int temp=two;two=one;One=temp;,System.out.println(one);System.out.println(two);,常 量,常量(constant)是指在程序运行中其值一直保持不变且不能被改变的量。常量初始化之后就不能再改变它的值常量使用final关键字来定义如:final float PI=3.1415926f;final byte MAX=127;final boolean sex=tr

23、ue;final char a=a;final string s=“您好啊!”;(字符串常量),常 量,所有的基本数据类型都可定义常量常用的转义字符常量r表示接受键盘输入,相当于按下了回车键;n是换行;t是制表符,相当于table键;b是退格键,相当于Back Space;是单引号,而“是双引号;是一个斜杠“”。,数据类型间的转换,类型的转换通常是在一个运算式中参加运算的各个变量的类型不一致,或者要给某种类型的变量赋一个不同类型的值时发生类型转换分为:自动转换(隐式)强制转换(显式/casting),数据类型间的转换,自动转换:两种类型是兼容的;目的数据类型的取值范围比来源数据类型的取值范围要

24、大。,数据类型间的转换,强制转换:目的数据类型的取值范围比来源数据类型的取值范围要小。如当需要将int型的值赋给一个byte型的变量时该怎么办?当把一个浮点值赋给整数类型时,将发生一种不同的类型转换:截断。大家都知道整数没有小数部分。这样,当把浮点值赋给整数类型时,它的小数部分将会被舍去。例如,如果将值1.23赋给一个整数,其结果只是1,0.23被舍弃。当然,如果浮点值太大而不能适合目标整数类型,那么它的值将会因为对目标类型值域取模而减少。慎用强制类型转换。,表达式中类型的自动提升,除了赋值方式,类型变换还可以在表达式中进行。在表达式中,对中间值的精确要求有时超过任何一个操作数的范围。例如,考

25、察下面的表达式。byte a=40;byte b=50;byte c=100;int d=a*b/c;中间项结果a*b很容易超过它的任何一个byte型操作数的范围。为处理这种问题,当分析表达式时,Java自动提升各个byte型或short型的操作数到int型。这意味着子表达式a*b使用整数而不是字节型来执行。这样,尽管变量a和b都被指定为byte型,50*40中间表达式的结果2000是合法的。,表达式中类型的自动提升,自动类型提升有好处,但它也会引起令人疑惑的编译错误。例如,下面这个看起来正确的程序却会引起一些问题。byte b=50;b=b*2;/Error!Cannot assign an

26、 int to a byte!该程序试图将一个完全合法的byte型的值50*2再存储给一个byte型的变量。但是,当表达式求值的时候,操作数被自动地提升为int型,计算结果也被提升为int型。这样,表达式的结果现在是int型,不强制转换它就不能被赋为byte型。在理解了上述溢出后果的情况下,就知道应该使用一个显式的强制类型转换。byte b=50;b=(byte)(b*2);这样将产生正确的结果100。,关于类型提升的若干约定,除了将byte型和shorts型提升到int型以外,Java语言还规定了若干适用于表达式的类型提升规则。首先,如前面所描述的,所有的byte型和short型的值被提升到

27、 int型。其次,如果一个操作数是long型,整个表达式将被提升到long型;如果一个操作数是float型,整个表达式将被提升到float型;如果有一个操作数是double型,计算结果就是double型。,例子,例如,下面的程序显示了在表达式中的每个值是如何被提升的,以匹配各自双目运算符的第二个参数。class Promote public static void main(String args)byte b=42;char c=a;short s=1024;int i=50000;float f=5.67f;double d=.1234;double result=(f*b)+(i/c)-

28、(d*s);System.out.println(f*b)+(i/c)+-+(d*s);System.out.println(result=+result);,赋值语句,前面在讲变量的定义时我们已经多次使用了赋值语句,它的一般格式如下被赋值的变量=数值;被赋值的变量=用来赋值的变量;被赋值的变量=表达式;,=称为赋值运算符,float f=1.234F;float alf=f;String s=“Hello”+“Java”;,赋值语句,更多的赋值语句除了前面用到的算术表达式以外,还有逻辑表达式,boolean b=32;在这个赋值语句里,最终b的值是什么呢?,答案:false,运算符,在Jav

29、a语言中,运算符可以划分为四大类:算术运算符、关系运算符、位运算符以及逻辑运算符。此外还定义了一些附加运算符,用于某些特殊情况的处理。,算术运算符,算术运算符,i+与+i的区别:i+在使用i之后,使i的值加1,因此执行完i+后,整个表达式的值为i,而i的值变为i+1。+i在使用i之前,使i的值加1,因此执行完+i后,整个表达式和i的值均为i+1。如:a=2;b=a+;运行后:a=3;b=2;a=2;b=+a;运行后:a=3;b=3;i-与-i的区别(与上面类似),算术运算符,“+”除字符串相加功能外,还能把非字符串转换成字符串,如:“x”+123;的结果是“x123”。x+123的结果是什么呢

30、?如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论了。对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。int x=3510;x=x/1000*1000;实际运行结果是3000,想想为什么?,算术运算符使用技巧,思考题1:某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?答案:(x+5)/6。这种算法还可用在查看留言板的分页显示上:其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。思考题2:假设你要让x的值在0至9之间循环变化,请写出相应的

31、程序代码。答案:int x=0;while(true)x=(x+1)%10;,加运算符可以用来连接两个字符串,例如,”abc”+123的运行结果是字符串abc123,“abc”+(1+2)的运行结果是什么?,abc3,两个整数相除的结果取其整数部分,例如,3/2的结果是1,而不是1.5 1/2的结果是0,8/15*15的结果是多少?,0,算术运算符的使用,Java语言既可以对整数取模,也可以对小数取模,如:20%7=6,16.2%5=1.2,可以对char类型的数据进行运算,因为其可以自动转换为整型或浮点型,如:a/3=32;a%5=2,算术运算符的使用,单目运算符,正值(+),负值(-),如

32、:+5,-5,加1(+),减1(-),运算符的操作数必须是变量,不能是常量或带有运算符的表达式,可以把运算符放在操作数的前面或后面,如:+a和a+-a和a-,算术运算符的使用,说明:,+a先对a增1,然后用增1后的值进行计算,a+先用a的值参加计算,然后对a增1,例:int a=5,b=8,c,d;c=(a+)*b;/c=40,a=6 d=(+a)*b/d=48,a=6,算术运算符的使用,同样:,-a先对a减1,然后用减1后的值进行计算,a-先用a的值参加计算,然后对a减1,例:int a=5,b=8,c,d;c=(a-)*b;/c=40,a=4 d=(-a)*b/d=32,a=4,算术运算符

33、的使用,赋值运算符,注1:在JAVA里可以把赋值语句连在一起,如:x=y=z=5;在这个语句中,所有三个变量都得到同样的值5。注2:x+=3等效于x=x+3,等于*=,-=,/=依此类推。,关系运算符,注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。注2:比较运算符“=”不能误写成“=”,切记!切记!,5,逻辑运算符,注1:逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。注2:“&”和“&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&”的左边为false,则将不

34、会计算其右边的表达式。“|”和“|”的区别与“&”和“&”的区别类似。,“&”和“&”的区别分析,public class TestAnd public static void main(String args)int x=0;int y=3;if(x!=0 上面例子中,由于while语句的判断条件中的第一个布尔表达式是不成立的,程序就不会判断第二个布尔表达式的值,这就是“短路”。如果两个表达式之间用“&”来连接,如果正好碰到上面所示的特殊情况,程序运行时就会出错,逻辑运算符,1、a,b,c三条边能否组成三角形的条件a+bc&a+cb&b+ca2、判断year是否是闰年的条件1)能被4整除,但

35、不能被100整除;2)能被4整除,又能被400整除。(year%4=0&year%100!=0)|(year%400=0),三目条件运算符?:,条件运算符也称三目运算符,其格式为:,Expression?statement1:statement2;,它的作用是根据第一个运算符(放在?前面,必须为布尔类型数据)的真假值,来决定整个表达式的结果值是第二个运算量(放在?后面:前面)或者是第三个运算量(放在:后面)。如:int x,y=10,z=43;x=yz?y:z;运行后 x=43.即当yz时,x=y;否则x=z.,运算符的优先级,可以使用括号改变运算赋的优先级,分析int a=2;int b=a

36、+3*a;语句的执行过程 与int a=2;int b=(a+3)*a;语句的执行过程的区别。,如何避免多个运算符带来的问题,如何避免多个运算符带来的问题,与其去思考其中的原因,我们还不如将上面的第二句改为几条语句来实现我们想要的结果。不要在一行中编写太复杂的表达式,也就是不要在一行中进行太多的运算在一行中进行太多的运算并不能为你带来什么好处,相反只能带来坏处,它并不比改成几条语句的运行速度快,它除可读行差外,还极容易出错。对于优先级顺序,不用刻意去记,有个印象就行。如果你实在弄不清这些运算先后关系的话,就用括号或是分成多条语句来完成你想要的功能,因为括号的优先级是最高的。这也是软件编码规范的

37、一个要求。,Java中的数学函数,Java的输入输出,JAVA没有提供专用的输入/输出命令或语句,它的输入/输出是靠系统提供的输入/输出类的方法实现的。输出System.out.println():该方法可以有0或1个参数System.out.print():该方法必须有1个参数参数类型可以是char、byte、int、boolean、float、double、String和Object(对象)类型,这些类型的数据在转换成相应的字符串后输出。,输入1,Scanner类需导入包Java.util示例:Scanner in=new Scanner(System.in)String str=in.n

38、extLine();/输入字符串 int i=in.nextInt();/输入整数./其他方法请参考教材第42页,输入2,System.in.read()用于从键盘上输入一个字符,按照int数据处理,若转换为字符型就是字符本身,若转换为整型,它是字符的扩展ASCII码值(0255)。注意:进行输入时要引入java.io包,并且使用异常处理机制。,输入输出,使用字符串缓冲BufferedReaderimport java.io.*;class stringinpublic static void main(String args)throws IOExceptionString s;System

39、.out.println(please input a string:);BufferedReader br=new BufferedReader(new InputStreamReader(System.in);/创建字符串缓冲区对象br,用于接收输入的字符串s=br.readLine();/调用读入字符串的方法System.out.println(“the string you input is+s);,输入输出,Java开发环境Java语言基础Java控制结构,目 录,控制结构,语句和块分支(选择)结构if、ifelse、switch循环结构while、for、dowhile跳转语句br

40、eak、continue、return,为了调试的方便,后期的代码编写及演示都在NetBeans下进行。,JAVA语言的三种基本控制结构,语句,程序中的语句可以分为两种类型:简单语句和流程控制语句。Java中常用的有下面几类语句:声明语句,如:char a=A;表达式语句,如:i+;System.out.println(“Hello”)分支语句,如:ifelse、switch循环语句,如:while、dowhile、for跳转语句,如:break、continue异常语句,如:try-catch-finally空语句,如:;,块(block),块是用一对“”将零个或多个语句括起来,就构成一个块

41、(也称复合语句)。程序中的类体及方法体也都是块。class UseBlockpublic static void main(String args)int a=5;a+=8;int b=6;b=b+a;System.out.println(a+b);System.out.println(a+b);结合前面所学知识(变量的作用域),上面的程序有错误吗?,分支结构,if单选结构if(布尔表达式)语句块;可以是一条或多条语句,在只有一条语 句的情况下,可以不用“”如:学生的成绩studentGrade=60分,则输出“成绩及格了”if(studentGrade=60)System.out.print

42、ln(“成绩及格了”);,分支结构,实例:求两个数的最大值。(使用单分支结构)int n1=45326,n2=54321,max;max=n1;if(n2=n1)max=n2;System.out.println(“max=”+max);,分支结构,if-elseif(布尔表达式)语句块1;可以是一条或多条语句,在只有一条语句 的情况下,可以不用“”else语句块2;,分支结构,如:学生的成绩studentGrade=60分,则输出“恭喜!成绩及格了”,否则输出“遗憾!成绩不及格”if(studentGrade=60)System.out.println(“恭喜!”);System.out.p

43、rintln(“成绩及格了”);else System.out.println(“遗憾!”);System.out.println(“成绩不及格”);,分支结构,实例:求两个数的最大值。(使用双分支结构)int n1=45326,n2=54321,max;if(n1=n2)max=n1;elsemax=n2;System.out.println(“max=”+max);,分支结构,嵌套的if-else结构if(布尔表达式1)语句块1;else if(布尔表达式2)语句块2;else if(布尔表达式N)语句块N;else 语句块else;,就近匹配原则,分支结构,如:学生的成绩studentG

44、rade=90分,则输出等级“A”,studentGrade=80分,则输出等级“B”,studentGrade=70分,则输出等级“C”,studentGrade=60分,则输出等级“D”,其他成绩,则输出等级“F”。if(studentGrade=90)System.out.println(“A”);else if(studentGrade=80)System.out.println(“B”);else if(studentGrade=70)System.out.println(“C”);else if(studentGrade=60)System.out.println(“D”);els

45、e System.out.println(“F”);,分支结构,switch多分支结构switch(表达式)case 值1:statements1;break;case valueN:statementsN;break;default:defaultStatements;,将括号里“表达式”的值同每种情况列出的值做比较,若相等就执行后面的语句;若不等,就执行default语句。注意:“表达式”必须为byte、short、int或char类型。每个case语句后的值必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量),重复的case值是不允许的。通常在每一种case情况后都应使

46、用break语句。否则,第一个相等情况后面所有的语句都会被执行,这种情况被称为落空。,分支结构,实例1:根据考试等级(“A”表示90分以上,“B”表示8089分,“C”表示7079分,“D”表示6069分,“E”表示60分以下)输出百分制分数段。实例2:输入一个月份,判断是属于一年中的哪个季节(春、夏、秋、冬),循环结构,循环结构是在满足一定条件下反复执行某段程序的流程结构,一个循环一般包括四个部分:循环的初始化:用来设置循环的一些初始条件。循环条件:一般为布尔表达式循环体:重复执行的一段程序,可以是一个语句,也可以是一个语句块迭代部分:在本次循环结束,下一次循环开始前执行的是循环变量递变的语

47、句。常用的形式为一个计数器递增或递减。,循环结构,while语句while(条件表达式)循环体;(1)没有在循环体中提供使条件表达式最终变为假的语句,这种循环就永远不会终止,称为“死循环”(2)该循环体最少执行多少次?,循环结构,实例:计算1+2+3+100int i=1,sum=0;while(i=100)sum=sum+i;i+;System.out.println(“1+2+3+100=”+sum);,循环结构,实例:用while循环语句计算:1!+2!+3!+10!int i=1,p=1,sum=0;while(i=10)p=p*i;sum=sum+p;i+;System.out.pr

48、intln(“1!+2!+3!+10!=”+sum);,循环结构,do-while语句do循环体;while(条件表达式);注意(1)while(条件表达式)后有“;”(2)该循环体至少被执行1次,这是和while的最大区别。故一般称while循环为“当型”循环(先判断后执行);do-while循环为“直到型”循环(先执行后判断)。,循环结构,实例:将键盘输入的数据累加求和,直到输入0为止。BufferedReader br=new BufferedReader(new InputStreamReader(System.in);String s;int i,sum=0;System.out.p

49、rintln(plaese input a number,input 0 to stop);dos=br.readLine();i=Integer.parseInt(s);sum=sum+i;System.out.println(the sum is:+sum);while(i!=0);,循环结构,for语句 for(初始化;循环继续条件;增量)语句;For结构应用举例注意:for语句中的循环变量在for结构头的初始化部分定义时,在此结构外使用该循环变量是一个语法错误。,循环结构,实例:计算1+2+3+100 计算1!+2!+3!+10!计算2+4+6+100,循环结构,【例】求1000之内的

50、所有水仙花数。所谓水仙花数,是指一个三位数,它的各位数字的立方和等于这个数本身。(如:371)程序分析:用for循环每一次循环检查100到999中的一个三位数n,取出n的个位、十位和百位分别存入k,j,i三个整形变量中。然后利用系统定义好的方法Math.pow()计算i,j,k的三次方并相加,若得到的和等于n,则输出这个水仙花数,否则n加1进入下一次循化。循环结束时将得到所有的水仙花数。其中用m计算水仙花数的当前找到个数。,循环结构,public class Narcissus public static void main(String args)int i,j,k,m=1;for(int

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号