版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 Java的认知了解Java语言的发展,掌握它的特点,初步建立面向对象的概念;通过一个简单Java应用程序介绍Java程序的构成及运行方法;掌握Java编译环境的配置与建立本章目标2难点重点Java语言特点Java运行环境配置第一个Java应用程序的编写计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。 1. 机器语言 2. 汇编语言3. 高级语言高级语言的下一个发展目标是面向应用,即:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理1.1.1 程序设计语言的发展历程1.1 程序设计语言Java的认知4Java的故事Sun Microsystems, In
2、c. 印度橡树1991.4 Sun开发新的语言,James Gosling取名时看到窗口橡树,即命名为Oak。后改名为Java。1995年5月23日正式发布1991年,Sun公司成立Green项目组。Oak(橡树)系统出现。1994年,Green项目组用Oak设计了一个称为WebRunner(后来称为HotJava)的WWW浏览器。1995年5月23日,Sun公司开发的一门新的语言Java语言。Netscape公司1995年8月将Java解释器集成到它的主打产品Navigator浏览器中。Microsoft公司在Internet Explorer浏览器中认可了Java语言。目前使用的Java版
3、本是Java2,包括:J2SE(Java Standard Edition)用于工作站、PC机,为桌面开发和低端商务应用提供了Java标准平台。J2EE(Java Enterprise Edtion)用于服务器,构建可扩展的企业级Java平台。J2ME(Java Micro Edtion)嵌入式Java消费电子平台,适用于消费性电子产品和嵌入式设备。2009年Sun公司被甲壳虫(Oracle)收购。1.1.2 Java的发展历史8Java的认知1面向对象2语法简单3平台无关性4安全性5分布式应用6多线程7. 动态 Java语言是简单的、面向对象的语言,它具有分布式、安全性,又可以实现多线程,更
4、主要的是它与平台无关1.2 Java语言特点Java的认知9Java程序与虚拟机Java的运行1.3 Java程序的开发、编译和运行1.3.1 Java执行环境JDKJDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。所有的Java可视化开发工具几乎都依赖和使用Sun公司提供的JDK(Java开发工具包)。进入Sun官方网站可免费获得JDK软件和文档。双击下载后的文件,通常会安装在C盘下。Java的认知111.JDK的安装目录: -bin目录: 存放可执
5、行文件-lib目录: 存放Java类库文件-jre: 存放Java 运行时环境文件的根目录,包含Java虚拟机,运行时的类包和Java应用启动器-demo: 存放演示程序1.3.2 环境变量介绍和配置Java的认知122.环境变量部署 (1)右键单击桌面上“计算机”。(2)快捷菜单中选择“属性”,单击“高级系统设置”,选择“环境变量”。(3)在“系统变量”中新建“path”变量,值设为“C:Program Files (x86)Javajdk1.8.0_144bin”。1.3.2 环境变量介绍和配置Java的认知131文本编辑器Java源代码是普通的文本文件,任何可以编辑文本文件的编辑器。如:
6、WINDOWS记事本、写字板、word等。但是这些简单工具没有语法的高亮提示、自动完成等功能,代码的编写效率低。一般会选用一些功能比较强大的类似记事本的工具,比如: Notepad+、Sublime Text、editplus、ultraedit、vim等2集成开发工具这类工具提供了Java的集成开发环境,为需要集成Java与J2EE的开发者和开发团队提供对Web applications、Servlets、JSPs、EJBs、数据访问和企业级应用的强大支持。在这类工具中,主要推荐NetBeans、Homesite、JBuilder、WebGain和Eclipse等。 1.3.3 Java的开
7、发软件介绍Java的认知14(1)创建Java源程序Java源程序一般用java作为扩展名,用Java语言写成。(2)编译源程序成class字节码文件Java编译器,“javac”,读取java源文件并将其翻译成Java虚拟机能够理解的指令集合,以字节码的形式保存在文件中。通常,字节码文件以class作为扩展名。(3)运行class(字节码)文件Java解释器读取字节码文件,取出指令并翻译成计算机能执行的代码,完成运行过程。 1.3.4 开发Java程序的步骤Java的认知15Java程序的开发、编译和运行 1、 线程的五个状态及其转换 1.4 简单Java程序Java的认知17/* * 这是
8、一个测试程序 */public class HelloWorld /* * 这是一个main方法 */public static void main(String args) / 输出信息Hello, World!System.out.println(Hello, World!); 1.4.2 Java程序语言基本特点Java的认知18(1)注释/* * 这是一个测试程序 */多行注释,目的是为程序添加注释,/*开始,以*/结束。注释语句没有执行效果,会被编译器忽略。单行注释以/开始,一般放在每行末尾。(2)public class HelloWorld声明了一个名字叫做“HelloWorld
9、”的类。public关键字表示这个类的访问特性是公共的。整个类的定义都在一对大括号(即“”)之中。(3)public static void main(String args)一个类可以声明多种方法,但最多只能有一个主方法main。Main()方法是所有Java应用程序执行的起始点,并通过主方法调用类中的其它方法。(4)System.out.println(Hello, World!);main方法唯一的一个语句,其作用是在显示器上显示字符串“Hello, World!”。学习要求:多练习、多编写程序。“熟能生巧”,通过实践真正体验到程序设计中的乐趣和成功的喜悦,增强学习的信心。本章小结这一章
10、中重点介绍了Java的诞生及特点,初步分析了面向对象的内涵。编写了一个小的应用程序,并编译、运行,还对Java程序的基本结构作了详细的分析。掌握:Java是面向对象的跨平台语言。Java字节码是Java虚拟机(JVM)可理解的机器语言指令,通常作为Java语言源代码的编译结果而生成。Java程序的执行步骤为:(1)编写Java源代码;(2)编译为字节码;(3)执行字节码文件。20第2章 Java语言基础 学习指南本章主要介绍编写Java程序必须了解的若干语言基础知识,包括变量和数据类型、运算符、表达式,以及相关的基础知识。这些基础知识,是书写正确的java程序的前提条件。难点重点常量变量各种数
11、据类型运算符与表达式数据的输入与输出主要内容2.1 常量与变量 2.1.1标识符Java 中的包、类、方法、常量和变量都需要有一个名字标志它,这个名字就是标识符。标识符的命名规则。(1)标识符必须以字母、下划线“_”或美元符号“$”开头,首字符之后可以跟任意数量的大小字母(AZ)、小写字母(az)、数字(09)、下划线(_)和美元符号($)。(2)变量名长度没有任何限制。(3)Java中区分大小写,system和System、class和Class分别代表不同的标识符。(4)不能使用Java中的关键字和保留字作为标识符。(5)标识符没有长度的限制,命名一般采用见名知义的原则。如:用userNa
12、me代表用户名,用sum表示和。2.1 常量与变量 关键字 Java 语言的保留字是指预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。Java 语言的保留字包括:const 和goto 。使用Java 语言的关键字时,有以下值得注意的地方:所有的关键字都是小写。friendly、sizeof 不是Java 语言的关键字,这是有别于C+语言的地方。程序中的标识符不能以关键字命名。2.1 常量与变量 关键字 Java 中也有许多保留关键字,如public , break 等,这些保留关键字不能当作标识符使用。下面是Java 的常用关键字:数据类型byte、boole
13、an、char、double、float、int、short、long用于类和接口的声明class、extends、implements、interface包引入和包声明import、package某些数据类型的可选值false、true、null流程控制流程控制break、while、case、continue、default、do、else、for、if、return、switch异常处理catch、finally、throw、throws、try修饰符abstract、transient、volatile、final、native、private、protected、public、sta
14、tic、synchronized操作符instanceof 创建对象new引用this、super方法返回类型void2.1 常量与变量 标识符下面是合法的标识符:indentifier、userName、User_name、_UserName、$usename。下面是非法的标识符:Class、9a、str*s、$ab-c。2.1 常量与变量 标识符的一些约定俗成的准则:(1)变量名采用名词,首字母小写,如果变量名包含了多个单词,则第一个单词后的每个单词的第一个字母使用大写。如:isVisiblea。(2)类名、接口名采用名词,首字母大写,内含的单词首字母大写。如:AppletInOut。(3
15、)方法名采用动词,首字母小写,内含的单词首字母大写。如:play、connectNumber。(4)常量名全部大写,单词间用下划线分开。如:PI、TOTAL_COUNT。检查下面这些是否是合法的变量名principalcost_pricemarks_3$lastnamecity123ratediscount%zip codeCityint变量命名规则小测试在程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据。系统分配的内存单元要使用一个标记符来标识,这种内存单元中的数据是可以更改的,所以叫变量。定义变量的标记符就是变量名,内存单元中所装载的数据就是变量值。用变量定义一块内存以
16、后,程序就可以用变量名代表这块内存中的数据。2.1.2变量的作用域和生命周期Java的认知30Java中的所有变量都必须先声明才能使用,通过标识符用逗号隔开可以声明多个变量。变量在定义的同时可以初始化。变量区分大小写。声明变量的语法为:数据类型 变量名=值 ,变量名=值;例如:int number; int num=4,sum; int n=1; 等价于 int n;n=1;1. 变量的声明2.1.2变量的作用域和生命周期Java的认知31Java中的变量可以在代码块的任何地方声明。代码块以左大括号开始,以右大括号结束。块用来定义作用域,每次创建一个新块后,就会创建一个新的作用域。变量在作用域
17、内为局部变量,所以在其作用域外不能使用。作用域可以嵌套。外层作用域包括内层作用域,内层作用域中的代码可使用外层作用域中声明的变量。但外层作用域无法使用在内层作用域中声明的变量。2. 变量的作用域及生命周期2.1.2变量的作用域和生命周期Java的认知32示例2-1常量就是程序里持续不变的值。常量一经建立,在程序运行的整个过程中都不会改变。Java 中的常量包含整型常量、浮点常量、布尔常量、字符常量和字符串常量。2.1.3常量Java的认知331.整型常量整型常量用来给整型变量赋值,可以采用十进制、十六进制和八进制表示。十进制常量用非0开头的数值表示,如100、-50; 十六进制的整型常量用0
18、x或0X 开头,如:0 x8a、0 xff、0X9A、0 xl2等;八进制的整型常量用0开头,如:017、032。long 类型的尾部有一个大写的L或小写的l,如-326L、017772l。2. 浮点数常量表示含有小数部分的数值常量。分为浮点常量float ( 32 位)和双精度浮点double ( 64 位)常量两种。表示一般浮点常量时,要在后面加上f(或F)或者d ( D )。浮点常量也可以用科学计数法表达,用E或e,如:-2.356e6(或-2.356E6)相当于-2.35*106。float 类型的后面一定要加f ( F ) ,用以区分。如:-2.5e3f、3.6F、4.5E-2、3.
19、6E-5D都是合法的。2.1.3常量Java的认知343.布尔常量 true 和false。4. 字符常量由一对单引号括起来的单个字符表示,如:a,#,8,Z,也可以是转义字符。 5.字符串常量用双引号括起来的常量,用于表示一连串的字符。如: Hello World、123 、 a2.1.3常量Java的认知352.2基本类型变量数据类型关键字占用字节取值范围默认数值布尔型boolean1个字节true,flaseFalse字节型byte1个字节-1281270字符型char2个字节u0000-uffffu0000短整型short2个字节-32768327670整型int4个字节-214748
20、364821474836470长整型long8个字节-922337203685477580892233720368547758070单精度浮点型float4个字节1.4013E-453.4028E+380.0F双精度浮点型double8个字节4.9E-3241.8E+3080.0DJava中共有8 种基本数据类型,此表中列举了它们的取值范围、占用的内存大小及默认值。转义字符在给字符变量赋值时,通常直接从键盘输入特定的字符,一般不会使用Unicode 字符编码,因为很难记住各种字符的Unicede 字符编码。但对于有些特殊字符,比如单引号,需要以反斜杠()后跟一个普通字符来表示,反斜杠()在这里
21、就成了一个转义字符。转义字符描 述n换行符,将光标定位在下一行的开头r回车,将光标定位在当前行的开头,不会跳到下一行。t制表符,相当于tab键,将光标定位在下一个制表位。代表反斜杠字符代表单引号字符代表双引号字符2.3运算符与表达式运算符是一种特殊符号,用以表示数据的运算、赋值和比较。一般由一甲丫个字符组成,但Java 将其视为一个符号、运算符共分以下几种:算术运算符、赋值运算符、比较运算符、逻辑运算符、移位运算符。2.3运算符与表达式2.3.1算术运算符算术运算是针对数值类型操作数进行的运算,分为+、-、*、/、%五种双目运算符和+、-和-三种单目运算符。运算符运算示 例结 果+加5+38-
22、减6-24*乘3*26/除8/32%取余8%32+自加a=2;b=a+;i=2;j=+i;a=2;b=2;i=2;j=3;-自减a=2;b=a-;i=2;j=-i;a=2;b=2;i=2;j=1;-负号a=5;b=-a;a=5;b=-5;示例:例2-6 模运算符的使用2.2运算符与表达式2.3.2关系运算关系运算符的作用是比较两边的操作数,结果都是boolean型的。示例:例2-7 关系运算符的使用运算符运算示 例结 果= =等于4= =3false! =不等于4!=3true小于4大于43true=小于等于4=大于等于4=3true2.2运算符与表达式2.3.3逻辑运算逻辑运算符用于对boo
23、lean 型结果的表达式进行运算,运算的结果都是boolean型 运算符运算示 例结 果&短路与true & falsefalse&非短路与true & falsefalse|短路或true | truetrue|非短路或true | truetrue!非!truefalse异或true falsetrue示例:例2-8 逻辑模运算符的使用2.2运算符与表达式2.3.4位运算任何信息在计算机中都是以二进制的形式保存的,“”、“&”、“|”和“”除了可以作为逻辑运算符,也可以作为位运算符,它们对两个操作数中的每一个二进制位都进行运算。“”是单目运算符,对参加运算的数按二进制位取反,原来为“1”的
24、变为“0”,原来为“0”的变为“1”。只有参加运算的两位都为l,运算的结果才为1,否则就为0。 只有参加运算的两位都为0,| 运算的结果才为0,否则就为1。只有参加运算的两位不同, 运算的结果才为1,否则就为0。示例:例2-9 位运算符的使用2.2运算符与表达式位运算Java还可以对数据按二进制位进行移位操作,Java 的移位运算符有三种:右移无符号右移2.2运算符与表达式2.3.4 条件运算符Java提供了一个特别的三元运算符用于取代ifelse语句,这个运算符就是?,该运算符的通用格式如下:expressionl ? expresslon2:expresslon3 其中,expressio
25、nl是一个布尔表达式,如expression1为真,那么expression2被求值;否则,expression3被求值。整个?表达式的值就是被求值表达式(expression2或expression3) 的值。expression2和expression3可以是任何类型的表达式,且它们的类型必须相同。示例:例2-10条件运算符的使用2.2运算符与表达式2.3.5赋值运算 赋值运算符的作用是将一个值赋给一个变量,最常用的赋值运算符是“=”,并由“=”赋值运算符和其他一些运算符组合产生一些新的赋值运算符 。运算符运算示 例结 果=赋值i=2;j=3;i=2;j=3;+=加等于i=2;j=3;i+
26、=ji=5;j=3;-=减等于i=2;j=3;i-=ji=-1;j=3;*=乘等于i=2;j=3;i*=ji=6;j=3;/=除等于i=2;j=3;i/=ji=0;j=3;%=模等于i=4;j=3;i%=ji=1;j=3;2.2运算符与表达式2.3.6自增、自减运算“+ +”和“-”是Java的递增和递减运算符。x=x+1 ; 与x+; 等价。同样,语句:x = x -1 ; 与x-;等价。2.2运算符与表达式 2.3.7运算符的优先级和结合规则运算符都有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。优先级运算符操作符分类1.、()、分隔符2!、+、-、-、一元运算符3*、/、%数学运
27、算符二元运算符4+、-5、移位运算符6、=7= =、!=关系运算符8&、|、&、|逻辑运算符9?=条件运算符三元运算符2.4基本数据类型的转换 整型、浮点型、字符型数据可以进行混合运算。在同种类型的变量之间赋值时,不需要进行类型的转换。当在不同类型的变量之间赋值时,或者将一个直接数赋给与它不同类型的变量时,需要类型转换。类型转换可分为隐式转换和显示转换两种,从低位类型到高位类型会进行自动转换,而从高位类型到低位类型需要进行强制类型的转换。 2.4基本数据类型的转换 隐式转换隐式转换是指运行时,Java 虚拟机自动把一种类型转换成另一种类型。这类转换要满足的条件是:(1)两种类型必须兼容;(2)
28、目标类型大于源类型。显式转换如果把高位类型赋值给低位类型,就必须进行强制类型转换,否则编译会出错。2.5 数据输入与输出 Java 程序通过流来完成输入输出。在Java中,输入/输出流的实现主要由java.io包中的类完成。所有的Java程序自动导入java.lang 包 ,该包定义了一个名为System的类。System同时包含三个预定义的流变量,in、out 和err。这些成员在System中是被定义成public和static型的,可以直接使用类名System调用。System.in是标准输入;System.out是标准的输出流; System.err是标准错误流;这些流可以重定向到任何
29、兼容的输入/输出设备。2.6 数据输入与输出 1.读取字符从BufferedReader读取字符,用read()方法: int read()throws IOException该方法每次执行都从输入流读取一个字符然后以整型返回,当遇到流的末尾时它返回一1,它可能引发一个IOException异常。从键盘读取一行字符串使用readLine(),通常形式如下: String readLine()throws IOException 它返回一个String类的对象。2.6 数据输入与输出 2. 读取数值当要读取数值时,可使用上述方法先读入数字字符串,然后调用相应数值类型的包装类的转换函数。Buffe
30、redReader br = new BufferedReader(new InputStreamReader(System.in);System.out.println(请输入一个数据:);s=br.readLine();int i=Integer.parseInt(s);2.6 数据输入与输出 2.5.2数据输出print()方法输出后不换行println()方法输出后换行它们都是由PrintStream(System.out引用的对象类型)定义。2.6 数据输入与输出 2.5.3 命令行参数如果想在程序运行时将信息传递到一个程序中,可以通过命令行参数传递给main()方法来实现,命令行参
31、数是程序在执行时在命令行紧跟在程序名后的信息。在Java程序中它们作为字符串存储在传递给main()方法的String数组中。例2-15 命令行参数的使用。public class CommandLinepublic static void main(String args) int i; for(i=0;iargs.length;i+) System.out.println(第+i+个命令行参数是:+argsi);2.7 编码规范一个软件的生命周期中,80%的花费在于维护。几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。因此编码规范可以改善软件的可读性,可以让程序员尽快而
32、彻底地理解新的代码,对于程序设计而言特别重要。2.7 编码规范命名规则属性、变量、方法参数的命名首字母小写,其他单词首字母大写,例如:userPrivilege,采用名词,例如:connection(而不是Connect) 类、接口名首字母大写,其他单词首字母大写,例如:BufferedStreamReader,采用名词。包名所有字母都要小写,顶级包名采用开发者所在机构的域名的逆序,例如:com.sun.jdbc、org.jboss,非顶级包名采用名词,或名词的缩写。方法(函数)的命名首字母小写,其他单词首字母大写,例如:buildXML,采用强动词,例如:createJSPPage 常量名的
33、每一个字母大写,单词之间用下划线分隔,常量的名字必须涵盖该常量的准确意义,例如:private static final int MAX_PATH = 255。数组名应该总是用下面的方式来命名:byte buffer,而不是byte buffer 。2.7 编码规范编码规则单行代码不得超过80字符,每行代码最多包含一个独立的语句,代码缩进两个空格。如果单行代码过长,则应该在逗号或操作符的后面断行。每一个变量的声明独占一行,将变量的声明置于代码块的开始位置。 for、while、do-while循环,if、else if、else、switch-case分支,try-catch-finally块
34、即使仅包含一个语句也要用包含。空行应该在逻辑代码段、两个类或接口的定义、两个方法/函数/过程之间或在for、while、do-while循环,if、else if、else、switch-case分支,try-catch-finally块的前面。 应有足够的注释。在维护代码的同时,维护你的注释。本章小结本章详细介绍了Java语言的基础知识,包括Java的基本数据类型、变量和常量的定义与使用、表达式和各种运算符的使用,通过本章的学习,能够掌握Java语言的基本语法结构。第3章 程序流程控制结构和方法结构化程序设计原则是公认的面向过程编程应遵循的原则,它使得程序段的逻辑结构清晰、层次分明,有效地改
35、善了局部程序段的可读性和可靠性,保证了质量提高了开发效率。结构化程序设计的最基本的原则是:任何程序都可以且只能由三种基本流程结构构成,即顺序结构、选择和循环结构。掌握流程控制的三种结构实现语句;掌握方法的定义、调用方法;理解方法的重载。本章目标60难点重点难点重点选择结构程序设计循环结构程序设计转向控制语句方法的定义和调用方法方法的重载计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。 1. 机器语言 2. 汇编语言3. 高级语言高级语言的下一个发展目标是面向应用,即:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理1.1.1 程序设计语言的发展历程1.1 程序
36、设计语言Java的认知623.1 顺序结构程序设计顺序结构就是程序从上到下一句一句向下执行,中间没有跳转和循环,直到程序结束,是三种控制结构中最简单的一种。如:int a,b;a=5;b=8;a=a+b;3.2 选择结构程序设计 选择语句使部分程序代码在满足特定条件的情况下才会被执行。Java语言支持两种选择语句ifelse语句switch语句3.2 选择结构程序设计 ifelse语句if语句是Java中的选择语句,也称为条件分支语句,它能将程序的执行路径分为两条。if语句的完整格式如下:if (条件表达式) 语句1; else 语句2;其中,条件表达式可以是任何返回布尔值的表达式。if语句的
37、执行过程如下:如果条件为真,就执行语句1,否则,执行语句2 。任何时候两条语句都不可能同时执行。3.2 选择结构程序设计 ifelse语句在使用if语句时,有以下注意事项:if后面的表达式必须是布尔表达式,而不能是数字类型。 else语句是可选的。if和else语句可以是单个语句,也可以是程序块。如果if语句或else语句的程序代码块中包括多条语句,则必须放在大括号内,若程序代码块只有一条语句,可以不用大括号。 3.2 选择结构程序设计 例3-1 使用if语句判断某一年是否为闰年。public class LeapYear public static void main(String args
38、)throws IOException int y; String s,leap; System.out.print(请输入一个年份值:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);s=br.readLine();y=Integer.parseInt(s);if(y%4= =0)&(y%100!=0)|(y%400=0)leap=是;else leap=不是;System.out.println(y+年+leap+闰年。);3.2 选择结构程序设计 嵌套的if语句嵌套的if语句是指该if语句为
39、另一个if语句或者else语句的子句,在编程时经常要用到嵌套的if语句。当你使用嵌套if 语句时,需记住的要点就是:一个else语句总是和它在同一个块中的最近的if语句并且没有else语句相对应的if语句相对应。例如:if (i= =10)if(j20)a100)a=b; else a=c; /与if(k100)相对应else a=d; /与if (i= =10)相对应3.2 选择结构程序设计 ifelse if语句在else语句中嵌套if语句的结构被称为是if-else-if阶梯结构,它的语法如下:if (条件表达式1) 语句1;else if(条件表达式2) 语句2;else if(条件表
40、达式3) 语句3;else 语句n;条件表达式从上到下被求值一旦找到为真的条件,就执行与它相关联的语句,该嵌套的其它语句就被忽略了。如果所有的条件都不为真,则执行最后的else语句。如果所有其它的条件表达式都不成立了,就执行最后的else语句。如果没有最后的else语句,那程序就不做任何动作。3.2 选择结构程序设计 例3-2 输入月份值,输出所对应的季节。public class SeasonTest public static void main(String args)throws IOException int i ; String s,season;System.out.print(
41、请输入一个月份:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);s=br.readLine();i=Integer.parseInt(s);if(i= =12|i= =1|i= =2) season=冬季;else if(i= =3|i= =4|i= =5) season=春季;else if(i=6|i=7|i=8) season=夏季;else if(i=9|i=10|i=11) season=秋季;else season=错误的月份;System.out.println(i+月份是+ se
42、ason);3.2 选择结构程序设计 switch语句switch语句是Java的多路分支语句。它提供根据表达式的值来选择执行程序的不同分支。switch语句的通用形式如下:switch(表达式)case 常量1:语句块1;break;case 常量2:语句块2;break;case 常量3:语句块3;break;default: 语句块1;break;3.2 选择结构程序设计 表达式必须是byte、short、int或char类型。每个case语句后的常量必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量),并且case后面的值是不允许重复的。switch语句的执行过程如下
43、:首先计算表达式的值,再与每个case语句中的常量做比较,如果找到一个与之相匹配的,则执行该case语句后的代码。如果没有一个case常量与表达式的值相匹配,则执行default语句。在switch语句中最多只能有一个default 语句,当然,default 语句是可选的。如果没有相匹配的case语句,也没有default子句,则什么也不执行。在case语句序列中的break语句将引起程序流程从整个break语句退出。当遇到一个break 语句时,程序将从整个switch语句后的第一行代码开始继续执行,达到“跳出”switch语句的效果。break语句是可选的,如果省略了case语句,程序会
44、继续执行case语句,有时需要在多个case语句之间没有break语句。3.2 选择结构程序设计 例3-3 使用switch语句实现例3-2的功能。public class SeasonTest2 public static void main(String args)throws IOException int i ; String s,season;System.out.print(请输入一个月份:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);s=br.readLine();i=Integ
45、er.parseInt(s);switch(i)case 12:case 1:case 2:season=冬季;break;case 3:case 4:case 5:season=春季;break;case 126:case 7:case 8:season=夏季;break;case 9:case 10:case 11:season=秋季;break;default:season=错误的;System.out.println(i+月份是+ season);3.3 循环结构的实现Java 语言提供3 种循环语句:for语句、while语句和dowhile语句。for和while语句在执行循环体之
46、前测试循环条件,而dowhile 语句在执行完循环体之后测试循环。这意味着for和while语句有可能连一次循环体都未执行,而dowhile循环至少执行一次循环体。3.3 循环结构的实现while语句while 语句是Java 语言中最基本的循环语句。它的格式如下,其中初始化部分是可选的:初始化部分while(循环条件)循环体,包括迭代部分当代表循环条件的布尔表达式的值为true 时,就重复执行循环,否则终止循环。3.3 循环结构的实现例3-4 计算1+2+3+n的值。public class AddTest public static void main(String args)throws
47、 IOException int n ; long sum=0; String s;System.out.print(请输入一个整数:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);s=br.readLine();n=Integer.parseInt(s);if(n=0)System.out.println(无效的整数。);elseint i=1;while(i=n)sum=sum+i;i+;System.out.println(1+2+3+.+n+=+sum );3.3 循环结构的实现在使用w
48、hile 语句时,有以下注意事项:如果循环体包含多条语句,必须将其放在大括号内,若循环体只有一条语句,则可以不用大括号。while 语句在循环一开始就计算循环条件表达式,若表达式的值为false,则循环体一次也不会执行。例如以下循环体一次也不会执行:while 语句(或者for语句和dowhile语句)的循环体可以为空,这是因为一个空语句(仅由一个分号组成的语句)在语法上是合法的。 3.3 循环结构的实现do-while语句dowhile 语句首先执行循环体,然后再判断循环条件。它的基本格式如下,其中初始化部分是可选的。初始化部分do 循环体,包括迭代部分while(循环条件);在任何情况下,
49、dowhile 语句都会至少执行一次循环体,然后再判断循环条件。当代表循环条件的布尔表达式的值为true 时,就继续执行循环体,否则终止循环。3.3 循环结构的实现例3-5 输入一个字符,输出它所对应的Unicode编码值。public class DoWhileTest public static void main(String args)throws IOException int n ; char c;System.out.print(请输入一个字符,以#结束:);BufferedReader br = new BufferedReader(new InputStreamReader(
50、System.in);don=br.read();c=(char)n;System.out.println(字符“+c+”的编码是:+n);while(c!=#);3.3 循环结构的实现 for语句for语句与while语句一样,也是先判断循环条件,再执行循环体。它的基本格式如下:for(初始化部分;循环条件;迭代部分) 循环体;在执行for 语句时先执行初始化部分,通常这是设置循环控制变量值的一个表达式,这部分只会被执行一次,作为控制循环的读数器。接下来计算作为循环条件的布尔表达式,如果为true,就执行循环体,接着执行迭代部分,然后再计算作为循环条件的布尔表达式;如果为假,则循环终止,如此
51、反复。3.3 循环结构的实现 例3-6 输入一个整数n,判断它是不是素数。public class PrimeNum public static void main(String args)throws IOException int n ; String s; boolean b; System.out.print(请输入一个整数:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);s=br.readLine();n=Integer.parseInt(s);b=true;for(int i=2;i
52、n;i+)if(n%i= =0)b=false;if (b) System.out. println(n+是素数); else System.out.println(n+不是素数);3.3 循环结构的实现在使用for 语句时,有以下注意事项:如果for语句的循环体只有一条语句,可以不用大括号。在初始化部分和迭代部分可以使用逗号语句。逗号语句是用逗号分隔的语句序列。如:for(int i=0,j=100;ij;i+,j-)s=s+i+j;for 语句的初始化部分、循环条件或者迭代部分都可以为空,但是每个条件之间的分号不可少。如:int i=0,s=0;for(;i100;)s=s+i;i+; 则
53、该语句退化为while循环。3.3 循环结构的实现循环的嵌套for语句、while语句和dowhile语句可以相互嵌套,组成多重循环。例3-7 打印如下图形。*public class Nested public static void main(String args) for(int i=0;i9;i+,i+) for(int j=i;j9;j+) System.out.print(*); System.out.println(); 3.3 循环结构的实现例3-8 编程输出n以内的所有完数。public class PerfectNum public static void main(St
54、ring args)throws IOException int n ; String s; System.out.print(请输入一个整数n:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);s=br.readLine();n=Integer.parseInt(s);for(int i=1;i=n;i+)int j=0;for(int k=1;k=i/2;k+)if(i%k=0)j=j+k;if(i=j)System.out.print(i+t);3.4 转向控制语句Java支持三种转向控制语
55、句:BreakContinuereturn。3.4 转向控制语句break语句在Java中,break语句有三种作用在switch 语句中用来终止一个语句序列用来结束本层循环break加上语句标号,用来作为一种goto 语句来使用。第一种用法前面已经讨论过,下面对后两种用法进行解释。3.4 转向控制语句使用break 退出循环可以使用break语句直接强行退出循环,忽略循环体中的任何其他语句和循环的条件测试。在循环中遇到break 语句时,循环被终止,程序控制在循环后面的语句重新开始。3.4 转向控制语句例3-9 使用break 退出循环。public class BreakLoop1 pub
56、lic static void main(String args) for(int i=0;i=50;i+) if(i=10)break; System.out.print(i+ ); System.out.println(循环结束); 3.4 转向控制语句例3-10 使用break结束无限while循环。public class BreakLoop2 public static void main(String args) int i=0; while(true) if(i=10)break; System.out.print (i+ ); i+; System.out.println(循环
57、结束); 3.4 转向控制语句例3-11 Break语句在多层循环中的使用。public class BreakLoop3 public static void main(String args) for(int i=1;i=3;i+) System.out.print(外部循环第+i+次:); for(int j=1;j=100;j+) if(j=10)break; System.out.print(j+ ); System.out.println(); System.out.println(循环结束!); 3.4 转向控制语句带标号的break语句带标号的break语句的通用格式如下所示:
58、break 标号名;其中标号是标识代码块的标签。要指定一个代码块,只需要在其开头加一个标号即可。标号可以是任何合法有效的Java标识符后跟一个冒号。一旦给一个代码块加上标号后,就可以使用这个标号作为Java语句的对象了。3.4 转向控制语句例3-12 带标号的break语句。public class BreakLabel public static void main(String args) boolean b=true; first: second: third: System.out.println(这是在break语句之前。); if(b)break second; System.ou
59、t.println(这条语句将不会被执行。); System.out.println(这条语句将不会被执行。); System.out.println(这条语句在second语句块之后。); 3.4 转向控制语句continue语句如果想要继续运行循环,但是要忽略这次循环剩余的循环体中的语句时,可以使用continue语句提前结束本层循环,continue语句是break语句的补充。在三种循环结构中continue语句使程序流程直接跳转给控制循环的条件表达式,循环体内任何剩余的代码将被忽略,然后继续循环过程。3.4 转向控制语句例3-13 continue语句的使用。public class
60、ContinueTest public static void main(String args) for(int i=0;i10;i+) System.out.print(i+ ); if(i%2=0)continue; System.out.println(); 3.4 转向控制语句return语句return语句用来明确地使控制流程从一个方法返回,因此,将它分类为跳转语句。在一个方法的任何地方,return语句可被用来使正在执行的分支程序返回到调用它的方法。例3-14 return语句的使用。public class ReturnTest public static void main(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农畜产品精深加工项目规划选址论证报告
- 交叉作业安全协调管理制度
- 2026年广东省台山市高一数学下册期末考试模拟考试卷(考点梳理)附答案
- 工地奖惩管理制度
- 2026年辽宁省新民市高一数学下册期末考试模拟考试卷有答案
- 改革完善竞技体育管理体制和运行机制行动计划
- 2026年浙江省建德市高一数学下册期末考试模拟检测卷及参考答案【培优B卷】
- 2026年吉林省珲春市高一数学下册期末考试模拟检测卷【全优】附答案
- 2026年广东省阳春市高一数学下册期末考试模拟试卷(综合卷)附答案
- 2026年福州市台江区机关、事业单位公开招聘第二批编外聘用人员备考题库【巩固】附答案详解
- GB/T 31458-2026医院安全防范要求
- 中日it行业对比分析报告
- 工地宿舍卫生奖罚制度
- 生产车间易耗品领用制度
- 电商直播介绍
- 2026年上半年党风廉政建设工作总结及下半年计划汇报报告
- 行业设备操作标准SOP(标准化作业程序)模板
- 2025年秋季学期国家开放大学《管理英语4》期末机考复习题库
- 雨课堂学堂云在线《地学景观-探秘﹒审美﹒文化(重大 )》单元测试考核答案
- 高原地区人群呼吸系统健康状况-洞察及研究
- 痰液的粘稠度及量的评估
评论
0/150
提交评论