版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java程序设计基础教程,第二章 java基本程序设计结构,第2章Java基本的程序设计结构,标识符和关键字 Java的基本数据类型 运算符、表达式和语句 语句 输入输出 数组,2.1 标识符和关键字,在Java中的标识符和关键字统称为保留字。 标识符是赋予类、常量、变量、方法、包或者接口的名称。,2.1.1 标识符,标识符可以自定义,要符合以下规则: 1、可包含数字、字母、下划线_或$,但不能以数字开头。 2、区别大小写,但长度没有限制 3、关键字不能做为标识符使用 4、遵守JAVA的命名规范, 1)类名称的每个单词都以大写字母开头。2)方法和变量第一个字母不大写,其他字母开头大写。 3)常
2、量每个字母都大写。 4)包名都小写。,2.1.2 关键字,具有特殊的意义和用途,不能作为自定义标识符。 Java的关键字有: Abstract、default、if、package、for、null、this、Boolean、do、implements、private、throw、Break、double、import、protected、throws、Byte、else、instanceof、public、transient、Case、false、interface、short、try、Catch、final、long、static、void、Char、finally、native、supe
3、r、volatile、 Class、float、new、switch、while、Continue、 synchronized goto和const在Java中虽然不再使用,但是还作为关键字存在。,2.2 Java的基本数据类型,2.2.1 布尔型,布尔型,使用关键字boolean来定义逻辑变量,值为常量:true、false。 【例2-1】一个布尔型应用的示例。P22,2.2.2 字符型,Java中由于使用的是unicode编码,所以一个字符占16位。,char ch1, ch2; ch1 = 65; ch2 = B;,java转义符:某些控制符和需转义的字符 b 退格键 t 制表符 n 换
4、行 ” 双引号 单引号 反斜杠,控制符,转义符,2.2.3 整数型,Java定义了四种整数型,即byte(字节型), short(短整型), int(整型), long(长整型)。 在Java语言中所有的数都为有符号数。 整型常量: 123 600 077 0 x23A,2.2.4 浮点型,浮点型, float单精度数占4个字节,double双精度数占8个字节 浮点型常量; 单精度:123.45f 123F 23e2f 双精度:123.45 123d 23e2,2.2.5 基本数据类型的转换,在Java中类型精度由低到高的顺序为: byte、short、char、int、long、float、
5、double 1、自动转换:当由低到高时可以自动转换 byte b;int i=b;long l=b;float f=b;double d=b; byte、short、char是平级,必须使用强制转换。 2、强制转换:由高级到低级时,必须强制转换 int i=99;byte b=(byte) i;char c=(char) i;,public class ChangeTest public static void main(String args) byte b = 15;int i = b; float f = b;double d = b; System.out.println(i); S
6、ystem.out.println(f); System.out.println(d); int s = 199; byte n = (byte) s; double t=12.3; s=(int)t; System.out.println(n); System.out.println(s); ,注意:在强制转换时有时会导致溢出或降低精度,如果整型值大了,会自动取模再赋值,而浮点数赋值给整数时会去掉小数点。,15 15.0 15.0 -57 12,例2-7 P26 | 例2-6 P25,2.3 运算符、表达式,Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。,2.
7、3.1算术运算符与算术表达式,在Java中提供运算功能的就是运算符(Operator),例如与算术相关的有加(+)、减(-)、乘(*)、除(/)、取模运算符(%)。 算术运算符的使用基本上与加减乘除一样,也是先乘除后加减,必要时加上括号改变运算的先后顺序。,3/15=? 15 % (-6)=? -15 % 6=? (-15) % 6=?,2.3.2比较和条件运算,“比较运算符” 有大于()、大于等于(=)、小于()、小于等于(=)、等于(=)和不等于(!=)。 在Java中,比较条件成立时以true表示,比较条件不成立时以false表示。 对于对象来说,两个对象参考之间使用=作比较时,是比较其
8、名称是否参考至同一对象,而不是比较其内容。,“条件运算符” 使用方式如下: 条件式 ? 成立返回值 : 失败返回值 返回值依条件式的结果而定,如果条件式的结果为true,则返回冒号前的值;若为false,则返回冒号后的值。,2.3.3逻辑和位运算,Java中也提供这几个基本逻辑运算所需的逻辑运算符分别为与( System.out.println(d=+i); System.out.println(-i); ,2.3.5赋值运算符,到目前为止,只学习过一个赋值运算符,也就是=这个运算符,事实上赋值运算符还有其他几个,如表2-2所示。,表2-2 赋值运算符,2.4 语句,在Java语言中,语句可分
9、为以下5类: 1方法调用语句 System.out.println(“Hello”); 2表达式语句 由一个表达式构成一个语句,如:x = 23; 一个表达式加上一个分号就构成了一个语句 3复合语句 用把一些语句括起来构成复合语句,如: z = 23 + x; System.out.println(“Hello”);,4控制语句 包括控制语句if、for和switch等语句。 5package语句和import语句 Package语句和import语句与类、对象有关,相关内容在第3章中介绍。,2.4.2 结构控制语句,Java的分支语句有2种类型,即if条件语句和switch开关语句。 1if
10、条件控制语句 if(条件式) 语句1; else 语句2;,if(条件式) 语句1; 语句2; else 语句3; 语句4; ,import java.util.Scanner; public class OddDecider public static void main(String args) Scanner scanner = new Scanner(System.in); System.out.print(请输入数字: ); int input = scanner.nextInt(); int remain = input % 2; / 求除 2 的余数 if (remain = 1
11、) / 如果余数为1 System.out.println(input + 为奇数); else System.out.println(input + 为偶数); ,2switch 开关语句,switch只能比较整型或字符型,比if判断式更简洁 switch的语法结构如下: switch(变量名称或表达式) case 表达式1: 语句1; break; case 表达式2: 语句2; break; default: 语句3; ,import java.util.Scanner; public class ScoreLevel2 public static void main(String ar
12、gs) Scanner scanner = new Scanner(System.in); System.out.print(请输入分数: ); int score = scanner.nextInt(); int level = (int) score / 10; switch (level) case 10: case 9:System.out.println(得A); break; case 8:System.out.println(得B); break; case 7:System.out.println(得C); break; case 6:System.out.println(得D
13、); break; default:System.out.println(得E(不及格); ,2.4.3 循环语句,1for循环 在Java中如果要进行重复性的指令执行,可以使用for循环式。它的基本语法如下: for(初始式; 判断式; 递增式) 语句1; 语句2; ,【例2-22】for循环的功能示例。,public class SimpleLoopFor public static void main(String args) for (int i = 0; i 10; i+) System.out.print( + i); ,2while循环,Java提供while循环式,它可以根据所
14、指定的条件式来判断是否执行循环体。语法如下: while(条件式) 语句1; 语句2; ,3. do-while 循环,Do 语句体; while(逻辑表达式),Int i=3; do while(i-) /编译可通过吗?,【例2-25】计算输入成绩平均的程序。,import java.util.Scanner; public class ScoreAverage public static void main(String args) Scanner scanner = new Scanner(System.in); int score = 0; int sum = 0; int count
15、 = -1; while (score != -1) count+; sum += score; System.out.print(输入分数(-1结束):); score = scanner.nextInt(); System.out.println(平均: + (double) sum / count); ,Scanner用法举例,功能:默认以空格分隔并按预定义的类型解析串成token 常用构造方法 Scanner(File source) Scanner(InputStream source) Scanner(String source),常见方法: StringfindInLine(Pa
16、ttern pattern)hasNext() hasNextBoolean()hasNextByte() hasNextDouble()hasNextFloat() hasNextLine()nextInt() nextBoolean() nextLine() nextShort() useDelimiter(String pattern),int data; int sum=0; Scanner in=new Scanner(System.in); data=in.nextInt(); while(din=0) sum=sum+data; data=in.nextInt(); System
17、.out.print(多个键盘输入整数之和为+sum);,String s; Scanner in=new Scanner(System.in); s=in.nextLine(); System.out.println(s); s=in.next(); while (!s.equals(-1) System.out.println(s); s=in.next(); ,Scanner parserS=new Scanner(“I like java); parserS.useDelimiter( ); while(parserS.hasNext() System.out.println(pars
18、erS.next(); StringTokenizer st = new StringTokenizer(hello,I like java!, !); while (st.hasMoreTokens() System.out.println(st.nextToken(); ,2.4.4 break和continue,break可以离开当前switch、for、while、do while的程序块,并前进至程序块后下一条语句(跳出循环)。 Continue本次循环,继续下一次循环。,/看下面这个程序: for(int i = 1; i 10; i+) if(i = 5) continue; S
19、ystem.out.println(i = + i); ,2.5 输入输出,1)利用System.out.println(),可以非常容易实现输出 【例2-29】一个输出的例子。 public class OutputTest public static void main(String args) float x; x = 100.0f / 3.0f; System.out.println(x); System.out.println(100.0 / 3.0); ,2)格式化输出 在java.text包中,提供了NumberFormat类可以定义格式,然后我们再用format方法来得到格式化
20、字符。,【例2-30】一个格式化输出的例子,Java.text.NumberFormat使用方法介绍 public abstract class NumberFormat protected NumberFormat() static NumberFormat getNumberInstance() static NumberFormat getIntegerInstance() String format (double number) Number parse (String source),double x; x = 100.0 / 3.0; NumberFormat f1 = Numb
21、erFormat.getNumberInstance(); String s = f1.format(x); try x=f1.parse(123.4).doubleValue()+10; catch(Exception ex) System.out.println(x); DecimalFormat df=new DecimalFormat(#.#); s=df.format(111222.33344); System.out.println(s);,2.6 数组,2.6.1数组的概念 数组(Array)是一组相同数据类型数据的有序集合。在Java语言中数组元素可以由简单数据类型组成也可以由
22、对象组成。数组中的每个元素都具有相同的数据类型,可以用一个统一的数组名和一个下标来唯一地确定数组中的元素。,数组主要具有下面的特点:,数组是相同数据类型的元素的集合。 数组中的各元素在内存中顺序存放 数组元素用整个数组的名字和其在数组中的顺序位置来表示。如a0表示名字为a的数组中的第一个元素,a1表示数组a中的第二个元素。 从数组的构成形式上看,可将其分为一维数组和多维数组。,2.6.2一维数组,1 一维数组的定义 type arrayName ; 或 type arrayName; 类型(type)可以为Java中任意的数据类型,包括简单类型和复合类型。 例如: int intArray ;
23、 Date dateArray;,2 一维数组的初始化 静态初始化 int intArray=1,2,3,4; String stringArray=abc, How, you; 动态初始化 1)简单类型的数组 int intArray; intArray = new int5;,2)复合类型的数组 String stringArray ; String stringArray = new String2;/为数组中每个元素开辟引用空间(32位) stringArray0= new String(How); /为第一个数组元素开辟空间 stringArray1= new String(are); /为第二个数组元素开辟空间,3一维数组元素的引用 数组元素的引用方式为: arrayNameindex index为数组下标,它可以为整型常数或表达式,下标从0开始。 intArray.length指明数组intArray的长度。,2.6.3多维数组,J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026网络管家面试题目及答案
- 2026西安建筑面试题型及答案
- (2026年)房屋买卖合同协议书
- 二手房买卖合同
- 阳江红丰输变电工程变动环境影响报告书
- 2026-2031年中国掌上投影机行业市场调查研究及发展前景预测报告
- 2025-2026学年河北省秦皇岛昌黎县靖安镇学区三年级数学下学期期末综合测试试题(含解析)
- 年产3万吨流延膜生产线项目可行性研究报告模板-立项备案
- 合肥热电金源余热利用四联供节能改造项目可行性研究报告模板申批拿地用
- 高性能挤压整套装备智能制造项目可行性研究报告模板-立项备案
- 2026年秋季初中开学第一课 行为规范 青春有规
- 《医疗器械经营质量管理规范》培训试题及答案
- 2026年金融科技产品推广方案
- 成都市新都区2026年社区网格员招录考试真题库及完整答案
- 城市更新项目策划与实施方案
- 湖南省长沙市望城区2027届六年级数学第一学期期末联考试题含解析
- 2026统考专升本高数:高数Ⅰ考点汇编
- 校长竞聘面试答辩题及答案(精心)
- 2025年特殊教育学校教师招聘笔试试题及答案
- 2026-2027年人工智能(AI)驱动的个性化国际税务筹划与合规风险预警平台适应全球税收规则变化获金融与法律科技投资
- 2026一级建造师《机电》必背知识点
评论
0/150
提交评论