Java语言基础知识 (2).ppt
第一章Java 语言基础知识,目录,1.1 Java语言概述1.2 Java程序开发过程与示例1.3 标识符、关键字和数据类型1.4 数组1.5 运算符、表达式和语句1.6 本章小结,Java语言是一门面向对象的程序设计语言。除了面向对象的特点以外,Java语言还在安全性、平台无关性、支持多线程、内存管理等许多方面具有卓越的优点。,1.1 Java语言概述,1.1.1 Java的诞生,1995年6月,由SUN公司推出源于对跨平台语言的需要1990年,James Gosling领导的“绿色计划”小组开发,最初命名为“Oak”Oak:名称源于窗外有一棵橡树Java:印尼的爪哇岛,盛产咖啡;“为世人端上一杯热咖啡”,1.1.2 Java的特点,简单语法类似C+摈除了指针等容易混乱的概念内存管理机制:可自动进行垃圾回收面向对象平台无关性“一次编写,到处运行”,解释型编译型:源程序一次性编译为二进制代码解释型:源程序不预编译,在运行时逐语句翻译为二进制代码执行。,Java执行过程首先,源程序经编译生成中间代码然后,中间代码经解释生成二进制代码,?,因此,严格来说,Java是混合型,多线程Java是第一个在语言级别提供内置多线程支持的高级语言安全性Java不支持指针,避免了混乱的内存操作Java程序限制在其运行环境中,避免了病毒感染动态,问题:Java是如何实现跨平台的?,简单来说,因为Java使用了“中间代码”(字节码,Bytecode)及“虚拟机”技术,只要在不同的平台安装了相应的Java虚拟机(JVM),“中间代码”都能够正确运行。Java程序“汉语”中间代码“世界语”JVM 世界各地的“翻译”,源程序,二进制代码,新硬件,硬件A的指令集,新硬件的指令集,?,新指令集,新程序,新二进制代码,C程序执行过程,源程序,统一中间代码,编译器,新硬件,新指令集,新二进制代码,解释器,二进制代码,新的解释器,JVM去解决(与程序员无关),根据指令集,按新指令集,JAVA程序执行过程,Java中没有#include 和#define 等预处理功能,用import语句来包含其它类和包;Java中没有struct,union及typedef;Java中没有不属于类成员的函数,没有指针和多重继承,Java只支持单继承;Java中禁用goto,但goto还是保留的关键字;Java中没有操作符重载;Java中没有全局变量,可以在类中定义公用、静态的数据成员实现相同功能;.,1.1.3 Java与C+的区别,Java 开发环境Application举例Applet举例,1.2 Java程序开发过程与示例,Java程序编译执行的过程,1.2.1 Java开发环境,一次编写,各处运行,Java APIs(应用程序接口)经过编译的,可在程序中使用的Java类库。Java VM(虚拟机)Java 程序由Java虚拟机程序执行(或解释执行)。,Java平台架构,JDKJava2 SDK(Software Development Kit)Standard Edition(J2SE)Enterprise Edition(J2EE)Micro Edition(J2ME),JDK介绍,开发工具编译器调试器 文档制作工具运行环境 Java虚拟机组成Java平台API的类。帮助文档附加库 Java程序(Applets 和 Applications)的Demo,JDKJ2SE核心组成部分,J2SE版本中包含的开发工具有:Javac:编译器,用来将java程序编译成 BytecodeJava:解释器,执行BytecodeJdb:调试器,用来调试java程序Javap:反编译,将Bytecode文件还原回方法和变量Javadoc:文档生成器,创建HTML文件Appletviwer:Applet解释器,用来解释已经转换成Bytecode的Java Applet程序,JDK开发工具,下载地址http:/安装运行可执行文件,如“jdk-6u7-windows-i586-p.exe”文档可同时下载帮助文档,JDK安装,安装JDK后产生如下目录:bin目录:Java开发工具,包括Java编译器、解释器等demo目录:一些实例程序lib目录:Java开发类库jre目录:Java运行环境,包括Java虚拟机、运行类库等,IDEIntegration Develop EnvironmentEclipseNetBeansJCreatorBorland JBuilderMicrosoft Visual J+Visual Age for JavaSun ONE Studio,常用的Java集成开发环境,Application运行在客户端Java虚拟机上的Java程序可在客户端机器中读写可使用自己的主窗口、标题栏和菜单程序可大可小能够以命令行方式运行主类必须有一个主方法main(),作为程序运行的入口。,1.2.2 Application举例,public class MyClass private int val1,val2;public void myFun(int x,int y)val1=x;val2=y;System.out.println(The sum is:+(val1+val2);public static void main(String arg)MyClass MyObj=new MyClass();MyObj.myFun(1,2);,例1.1,使用如下命令编译并运行程序:javacMyClass.javajava MyClass运行结果如下:The sum is:3,例1-1 运行结果,1.2.3 Applet举例,Applet小应用程序运行于支持Java的Web浏览器中浏览器的解释器把字节码转换成和机器匹配的指令,在网页中执行小程序。Applet和Application的差别:运行环境的不同,Applet总是放在Web浏览器中。,Applet的优点不需要安装,借助浏览器可直接运行Applet的局限性在客户端主机的文件系统中读/写受限不能运行客户端主机的任何程序仅能在服务器和客户端之间建立联系,例1-2,JAVA Applet文件名:MyApplet.javaimport java.awt.Graphics;import java.applet.Applet;public class MyApplet extends Appletpublic String s;public void init()s=new String(Hello World!);public void paint(Graphics g)g.drawString(s,25,25);HTML文件名:Applet1.html,一个Applet不再需要main方法,但是必须有且只有一个类扩展了Applet类(即子类),而且必须是public的,这个类称为主类。Import用来引入Java包中的一个或者所有类import java.applet.Applet:引入包“java.applet”中的“Applet”类import java.applet.*:引入包“java.applet”中的所有类如果不使用Import语句,则主类必须使用“包名+类名”的完整路径。例如:public class MyApplet extends java.applet.Applet,例1-2MyApplet.java文件说明,Graphics类java.awt包中的类,用来绘制直线、矩形、字符串等图形方法init()Applet类中的基本方法,可以在其中编写初始化代码方法paint()g为Graphics类的对象,调用了Graphics的drawString方法绘制字符串;g.drawString(s,25,25);执行的结果就是从坐标(25,25)开始绘制出字符串“Hello World!”,单位是像素。,例1-2Applet1.html文件说明,使用HTML(超文本标记语言)编写的网页 表示要运行Appletcode=主类对应的class文件Width、Height表示规定程序运行界面大小Code、Width、Height是必需的,如果.class文件与HTML文件不在同一个目录,可以用codebase指定所在目录,例如:Applet1.html在c:MyApplet.class在c:codeaa目录则codebase=“code/aa”,使用javac编译“MyApplet.java”用支持Java的浏览器(如:IE)打开Applet1.html,例1-2运行,或者用Java自带的appletviewer浏览输入:appletviewer Applet1.html,1.2.4 什么是JSP,JSP是Java Server Pages的缩写,Java动态页面利用JSP可以建立安全、跨平台的先进动态网站Microsoft对应的技术是ASP(Active Server Pages),JSP和ASP技术非常相似,与ASP相比,JSP以Java技术为基础,又在许多方面做了改进,具有动态页面与静态页面分离,能够脱离硬件平台的束缚,以及编译后运行等优点,完全克服了ASP的脚本级执行的缺点。,标识符和关键字Java的基本数据类型类型转换,1.3 标识符、关键字和数据类型,1.3.1 标识符和关键字,标识符用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。关键字在Java语言中已经被赋予特定意义的一些单词。不可以把这类词作为名字来用。具体见P11(存在错误:find应为final),Java标识符的规则,由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符。即:标识符的第一个字符必须是下列字符之一:大写字母(A-Z)小写字母(a-z)下划线(_)美元符号($)标识符的第二个字符及后继字符必须是:上述列表中的任意字符 数字字符(0-9),Java基本命名规则,包的命名所有字母小写;“域名命名法”为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名是不会重复的,所以程序员一般采用互联网上的域名称作为程序包的唯一前缀,例如:net.frontfree.javagroup。,类的命名对于其中的每个单词首字母大写,其他字母小写例如:Circle、TestPage;如果类名称中包含单词缩写,则这个缩写单词的每个字母均应大写,如:XMLExample。方法的命名 第一个单词全部小写,而后面的单词首字母大写,例如:run、sendMessge。,常量的命名所有字母大写,如果一个常量名称由多个单词组成,则使用下划线分割这些单词,例如:MAX_VALUE。参数、类成员变量、局部变量命名规则与方法命名规则一致,例如:class Student String className;private void getName(String studentNumber)int sqlString;,基本数据类型也称作简单数据类型。Java语言有8种简单数据类型,分别是:boolean、byte、short、int、long、float、double、char。这8种数据类型习惯上可分为4大类型:逻辑类型:boolean字符类型:char整数类型:byte、short、int、long浮点类型:float、double,1.3.2 基本数据类型,1、逻辑类型(布尔类型)常量:true、false变量:使用关键字boolean定义,定义时也可以赋给初值,如:boolean x;boolean tom_12;boolean x,tom,jiafei;boolean x=true,tom=false,jiafei;,注意:Java中的布尔型是一个独立的类型,不像C语言中的布尔型代表0和1两个整数,因此,Java中的布尔类型不能转换成数字。Java为布尔型分配4个字节长度。,2、整数类型使用关键字int来定义int型整型变量,定义时也可以赋给初值,如:int x=12,tom=-1230,height=9898,number;有byte、short、int、long四种整数类型,1)int型内存分配给4个字节取值范围:-231231-12)byte型内存分配给1个字节取值范围:-2727-1,3)short型内存分配给2个字节取值范围:-215215-14)long型内存分配给8个字节取值范围:-263263-1,3、字符类型常量:Java使用Unicode字符集,Uincode表中的字符就是一个字符常量,字符常量需使用单引号扩起,例如:A、b、?、!、9、好、t、Unicode:称为统一码或万国码,覆盖了世界上大部分文字,最多可识别65536个字符。,变量:使用关键字char来定义字符变量,如:char x=A,tom=爽,jiafei;对于char型变量,内存分配给2个字节。内存中实际保存的是字符的Unicode码,因此可用整数给char赋值,如:char x=97;,例1-3 字符类型,public class Example2_1 public static void main(String args)char chinaWord=你,japanWord=;int p1=36328,p2=38358;System.out.println(汉字你在unicode表中的顺序位置:+(int)chinaWord);System.out.println(日语在unicode表中的顺序位置:+(int)japanWord);System.out.println(unicode表中第+p1+位置上的字符是:+(char)p1);System.out.println(unicode表中第+p2+位置上的字符是:+(char)p2);,例1-3 运行结果,附:Java转义字符表,4、浮点类型:分为float和double两种类型float型:单精度浮点数常量:123.5439f,123.0f,2e40f(2乘10的40次方,科学计数法)变量:使用关键字float定义,如:float x=12.76f,tom=1234.987f;内存分配给4个字节取值范围:10-381038、-1038-10-38,double型:双精度浮点数常量:12389.5439d(d可以省略),123.0,6e-140(6乘10的-140次方,科学计数法)变量:使用关键字double定义,如:double x=12.76,tom=1234098.987;内存分配给8个字节取值范围:10-30810308、-10308-10-308,把一种基本数据类型变量的值赋给另一种基本类型变量时,就涉及到数据类型转换。基本类型数据的下列类型会涉及到数据转换,不包括逻辑类型和字符类型。我们将这些类型按精度从“底”到“高”排列了顺序:byte short int long float double,1.3.3 类型转换,级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换(隐式转换),例如:1)float x=100;如果输出x的值,结果将是100.02)int x=50;float y;y=x;如果输出y的值,结果将是50.0,级别高的变量的值赋给级别底变量时,必须使用显示类型转换。显示转换的格式:(类型名)要转换的值例如:int x=(int)23.89;long y=(long)34.98F;输出x,y的值将是23和34强制转换运算可能导致精度的损失,当把一个整数赋值给一个byte、short、int或long型变量时,不可以超出这些变量的取值范围,否则会导致溢出。例如:byte a=(byte)128;byte b=(byte)(-129);那么a和b得到的值分别是-128和127。,例1-4 类型转换,public class Example2_2 public static void main(String args)int c=2200;long d=8000;float f;double g=123456789.123456789;c=(int)d;f=(float)g;/导致精度的损失.System.out.print(c=+c);System.out.println(d=+d);System.out.println(f=+f);System.out.println(g=+g);,附:JAVA常量与变量补充知识,JAVA中变量默认值:整 型:0浮点型:0.0布尔型:false字符型:u0000对 象:null,附:JAVA常量与变量补充知识,JAVA中数值常量默认类型:整型常量:int浮点常量:double变量名只是表示内存中的某处地址,方便程序员编程使用的,变量名本身在内存中是不保存的。(编译时会建立字符表,记录变量名代表的地址,编译后就不复存在了),数组由同一类型的一连串对象或基本数据组成,并封装在同一数组名称下,元素类型可以是Java中任一类型数组是对象可动态初始化可以赋值给Object类型的变量在数组中可以调用类Object 的所有方法,1.4 数组,数组元素数组中的变量被称作数组的元素元素没有名字,通过数组名字和非负整数下标值引用数组元素每个数组都有一个由 public final 修饰的成员变量length,即数组含有元素的个数(length可以是正数或零),数组的声明数组的创建数组元素的初始化数组的引用多维数组,1.4.1 数组的声明,声明(Declaration)声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间不能直接使用,必须经过初始化分配内存后才能使用,Type arrayName;例如:int intArray;String stringArray;Type arrayName;例如:int intArray;String stringArray;,1.4.2 数组的创建,用关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。元素个数可以是常量也可以是变量 基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是对象,基本类型内存栈中保存的值就是该变量的值Java有八大基本类型:整型(4种)、浮点型(2种)、字符型、布尔型引用类型内存栈中保存的值是指向变量值的地址类、数组等都是引用类型主要区别:基本类型的值是分配在栈上的,而引用类型的值是分配在堆上的,基本类型和引用类型的主要区别:基本类型的值是分配在栈上的,而引用类型的值是分配在堆上的;对于引用类型的变量,栈中保存的仅仅是变量的引用(地址)。,创建格式:arrayName=new TypearrayLength;例如:int ai;ai=new int10;String s;s=new String3;或者可以将数组的声明和创建一并执行int ai=new int10;可以在一条声明语句中创建多个数组String s1=new String3,s2=new String8;,1.4.3 数组元素的初始化,可以在声明数组时初始化,数组长度即固定为元素个数,例如:int a=22,33,44,55;也可以在数组创建之后改变数组元素值,例如:上述语句相当于:int a=new int4;a0=22;a1=33;a2=44;a3=55;,创建数组时,如果没有指定初始值,系统会为每一个元素赋默认值:基本类型:整型(0);浮点型(0.0);字符型(u0000);布尔型(false);引用类型:默认值为null。,1.4.4 数组的引用,通过下面的表达式引用数组的一个元素:arrayNameindex 即:数组名下标下标可以是整型,也可以是字符型(char)下标从零开始计数,数组长度:元素的个数即为数组的长度,可以通过 arryName.length引用元素下标最大值为 length 1,如果超过最大值,将会产生数组越界异常(ArrayIndexOutOfBoundsException),int data=new int10;data-1 非法data 10 非法 data 1.5 非法 data 0 合法 data 9 合法 datau0000合法,数组的引用举例,int values=new int7;int index;index=0;values index=71;index=5;values index=23;index=3;values 2+2=values index-3;,public class MyArray public static void main(String args)int myArray;/声明数组 myArray=new int10;/创建数组 System.out.println(IndexttValue);for(int i=0;imyArray.length;i+)System.out.println(i+tt+myArrayi);/证明数组元素默认初始化为0/myArray10=100;/将产生数组越界异常,数组的举例例1-5,数组的举例例1-6,class Gauss public static void main(String args)int ia=new int101;for(int i=0;i ia.length;i+)iai=i;int sum=0;for(int i=0;i ia.length;i+)sum+=iai;System.out.println(sum);输出结果:5050,本例说明:数组名是一个引用public class Arrays public static void main(String args)int a1=1,2,3,4,5;int a2;a2=a1;for(int i=0;i a2.length;i+)a2i+;for(int i=0;i a1.length;i+)System.out.println(a1+i+=+a1i);,数组的举例例1-7,例如:创建一个字符串数组“strArray”,数组在内存中的分配原理,String strArray;,strArray=new String8;,strArray0=Hello;,source,在System类中 public static void arraycopy(Objectsource,intsrcIndex,Objectdest,intdestIndex,intlength),数组的复制:arraycopy方法,public class ArrayCopyDemo public static void main(String args)char copyFrom=d,e,c,a,f,f,e,i,n,a,t,e,d;char copyTo=new char7;System.arraycopy(copyFrom,2,copyTo,0,7);System.out.println(new String(copyTo);,数组的复制arraycopy举例,1.4.5 多维数组,int gradeTable;gradeTable 0 1 为42gradeTable 3 4 为93gradeTable 6 2 为78,二维数组的声明和构造int myArray;myArray 可以存储一个指向2维整数数组的引用。其初始值为null。int myArray=new int35;建立一个数组对象,把引用存储到myArray。这个数组所有元素的初始值为零。int myArray=8,1,2,2,9,1,9,4,0,3,0,3,0,0,7;建立一个数组并为每一个元素赋值。,运行结果:Length is:3,二维数组的长度class UnevenExample2 public static void main(String arg)int uneven=1,9,4,0,2,0,1,2,3,4;System.out.println(Length is:+uneven.length);,每行的长度:class UnevenExample3 public static void main(String arg)/声明并构造一个2维数组 int uneven=1,9,4,0,2,0,1,2,3,4;/数组的长度(行数)System.out.println(Length of array is:+uneven.length);,运行结果:Length of array is:3Length of row0 is:3Length of row1 is:2Length of row2 is:5,/数组每一行的长度(列数)System.out.println(Length of row0 is:+uneven0.length);System.out.println(Length of row1 is:+uneven1.length);System.out.println(Length of row2 is:+uneven2.length);,int myArray;,myArray=new int3;,二维数组在内存中的分配原理,myArray0=new int3;,int x=0,2;int y=0,1,2,3,4;myArray1=x;myArray2=y;,1.5 运算符、表达式和语句,Java运算符与表达式Java语句Java注释,1.5.1 运算符、表达式和语句,按照运算符的功能可以分为:算术运算符,如:+、-、*、/关系运算符,如:=、!=逻辑运算符,如:&、|、!赋值运算符,如:=、+=、-=位运算符,如:&、|、,按照操作元的个数划分,可以分为:单目运算符:一个操作元,如:+X(前缀运算符)、X+(后缀运算符)双目运算符:两个操作元,如:X+Y三目运算符:三个操作元,条件运算符“?:”,如:boolean isEqual=(X=Y)?true:false判断“?”前的逻辑表达式,如果结果为true,则执行“?”后的表达式,否则执行“:”后的表达式,1、算术运算符与表达式,算术运算符自增/自减运算符:+、-一元正负运算符:+(正)、-(负)加减运算符:+(加)、-(减)乘除运算符:*、/、%(求余、取模),算术表达式用算术符号和括号连接起来的符合java语法规则的式子,如:x+2*y-30+3*(y+5)加减运算符:+、-结合方向:从左到右优先级:4级,乘除、求余运算符:*、/、%结合方向:从左到右优先级:3级自增、自减运算符:+、-结合方向:从右到左优先级:2级,粗略的看,+x与x+作用都相当于x=x+1,但存在区别:+x:使用x之前,先使x值加1;x+:使用x之后,再使x值加1。例如,如果x值为5,那么:对于y=+x:y的值为6对于y=x+:y的值为5,算术混合运算的精度精度从“低”到“高”排列的顺序是:byte short int long float doubleJava按运算符两边的操作元的最高精度保留结果的精度,例如:5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。,char型数据和整型数据运算结果的精度是int例如:byte x=7;那么:B+x;的结果是int型,因此:下列写法是不正确的:char ch=B+x;应当写成:char ch=(char)(B+x);,2、关系运算符与表达式,关系运算符:、=、=:6级=、!=:7级,3、逻辑运算符与逻辑表达式,逻辑运算符:&(与)、|(或)、!(非)逻辑运算符的操作元必须是boolean型的值或表达式,例如:28&92的结果为false28|92的结果为true。结合方向:&、|为从左向右;!为从右向左优先级:&(11级)、|(12级)、!(2级),逻辑运算符&和|也称为“短路逻辑运算符”对于表达式op1&op2,当op1的值为false时,&运算符不再计算op2的值,例如:假定x值为1,那么:执行(y=1)=0)&(x=6)=6)后,x值为1执行(y=1)=1)&(x=6)=6)后,x值为6,4、赋值运算符与赋值表达式,赋值运算符:=、+=赋值表达式的值就是“=”左面变量的值,注意不要和比较运算符“=”混淆结合方向:从右到左优先级:14级,5、位运算符,位运算符:&、|、对数据进行二进制运算“&”:按位与,若a,b两个数据对应位是1,则c的该位是1,否则是0。“|”:按位或,若a,b两个数据对应位是0,则c的该位是0,否则是1。“”:按位非,若a对应位是0,则c的该位是1,否则是0。,“”:按位异或,若a,b两个数据对应位相同,则c的该位是0,否则是1。结合方向:&、|、从左向右;从右向左优先级:&(8级)、(9级)、|(10级)、(2级)与逻辑运算符不同,对于表达式op1&op2,位运算符要在计算完op1和op2之后再给出运算结果。例如:执行(y=1)=0)&(x=6)=6)后,x值是6,6、instanceof 运算符,用法:boolean isString=x instanceof String左面的操作元是一个对象;右面是一个类。当左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false结合方向:从右向左优先级:2级,7、运算符综述,运算符的优先级决定了表达式中运算执行的先后顺序,但没有必要刻意去记忆运算符号的优先级别,在编写程序时可尽量的使用括号()运算符号来实现想要的运算次序,以免产生难以阅读或含糊不清的计算顺序。,运算符的结合性决定了相同级别的运算符的先后顺序,例如:加减的结合性是从左到右,那么:8-5+3相当于(8-5)+3逻辑否运算符!的结合性是右到左,那么:!x 相当于!(!x)。运算符的优先级和结合性总表见教材P26,1.5.2 Java语句,Java里的语句可分为以下五类:1、方法调用语句,如:System.out.println(“Hello”);2、表达式语句,如:x=23;3、复合语句:用 括起的若干行语句4、控制语句:分支语句和循环语句5、package 语句和 import语句,1、分支语句,Java 语言的分支语句有2种类型:if条件语句switch开关语句,if语句,if 语句的一般形式:if(表达式)若干语句,if-else语句,if-else 语句的一般形式:if(表达式)若干语句 else 若干语句,if语句要点,if后()内的表达式结果必须是boolean类型;中可包含一到多条语句,如果只有一个语句,则可以省略,但为了增强程序可读性,建议不要省略;有时为了编程需要,内可以没有语句。,if语句示例,int math=60;if(math 60)System.out.println(数学及格了);else System.out.println(数学挂了!);,switch开关语句,switch语句是多分支的开关语句,一般格式:switch(表达式)case 常量值1:若干语句 break;.case 常量值n:若干语句 break;default:若干语句,switch语句要点,switch语句实际相当于多条件的“if else if else”语句;switch(表达式)中表达式的值必须是整型或者字符型,case常量值亦是如此;(long除外)case常量值必须互不相同;,如果表达式的值与某个case后的常量值相同,则执行case中的语句,直到遇到break语句为止;如果case中没有使用break语句,那么会继续执行后继的case中的语句,直到遇到break为止;如果表达式的值与任何case常量值都不相同,则执行default中的语句。,switch语句示例,int math=60;switch(math/10)case 9:System.out.println(你很完美);case 8:System.out.println(你很优秀);break;case 7:System.out.println(你过关了);case 6:System.out.println(你过关了);default:System.out.println(你挂了!);break;,math=95?,math=83?,math=71?,math=50?,math=100?,2、循环语句,for循环格式:for(表达式1;表达式2;表达式3)若干语句,称为循环体表达式1:变量初始化表达式2:boolean型表达式,循环条件表达式3:改变循环条件,for语句执行过程:for(表达式1;表达式2;表达式3)若干语句,称为循环体,for语句示例,for(int i=1;i=100;i+)/循环执行100遍 System.out.println(爱老虎油);for(int i=1;i=100;i+=2)/循环执行50遍 System.out.println(爱老虎油);,while 循环格式:while(表达式)若干语句,do-while循环格式:do 若干语句 while(表达式);,while循环和do-while循环的区别while循环是先判断,后执行;do-while循环是先执行,后判断,即:do-while循环至少执行一次,3、break和continue语句,break和continue语句多用在循环体中break:中断循环,跳出循环体;continue:中断本次循环,不再执行continue后的循环体语句,转而进入下一次循环。,break和continue语句示例,for(int i=1;i=10;i+)if(i=5)break;System.out.println(i);for(int i=1;i=10;i+)if(i=5)continue;System.out.println(i);,1.5.3 Java注释,单行注释:/这是单行注释多行注释:/*/*这是多行注释*/,文档注释:/*/*这是文档注释*/文档注释通常写为:/*这是第一行文档注释*这是第二行文档注释*/,JDK中的javadoc程序可以提取文档注释并生成HTML帮助文档(Java帮助文档就是这样生成的)javadoc基本格式:javadoc-d 文档存放目录 源文件,1.6 本章小结,本章内容Java语言的诞生、特点、应用程序及Applet示例Java语言基本语法,包括:数据类型、数组、运算符和表达式、控制语句复习要求熟练掌握Java语言基本语法读懂课件及教材中的Java程序能够应用Java语言编写较为简单的程序,上机作业,编写简单的Applet程序,并编写HTML页面运行编写程序求素数:输入一个整数a,求出1a之间的素数猜数字:系统随机产生一个1100之间的数字,用户输入猜测数字,直到猜中为止。,猜数字扩展:用户与系统各拥有100积分,按以下规则计算得分,系统积分到0则用户获胜。如果用户猜测数字与系统产生数字相同,则得10分,系统扣10分;范围差在5以内,得5分,系统扣5分;范围差在10以内,得0分,系统扣0分;范围差在20以内,扣5分,系统加5分;范围差在100以内,扣10分,系统加10分;,本章结束,