资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java,语言程序设计,刁宏志,第,2,章,计算机科学与工程学科,第,2,章,Java,语言设计,2.1 Java,词法,1.,注释,用来说明程序段,增加程序的可读性。,注释的类型:,(,1,),/*,注释*,/,,,/*,到*,/,之间的内容为注释。,(,2,),/,注释,,,/,之后内容为注释,用于单句。,(,3,),/*,注释*,/,,,/*,到*,/,之间的内容为注释。在某个声明之前使用,被包含进,Javadoc,程序自动生成的文档。,2.关键字,Java,语言中的保留字符,不可用于标识符。,3.标识符,是类、对象、方法、变量和用户定义的数据类型等名字,可任意长,使用,uniocode,字符集。,1)必须以字母、下划线_或美圆符号开头。,2)后面由字母、下划线_、美圆符号和数字组成的字符串。,3)不可为关键字。,4.常量,程序运行中不可改变的量。共有五种:,整形、浮点、布尔、字符和字符串常量,。,可使用,final,定义,如,final double,PI=3.1415926,5.运算符,是用来对变量和其他对象进行运算操作的符号。分为四类:,算术操作、位操作、关系操作和逻辑操作。,6.,分隔符,(1),括号(),用来隔开表达式、或表示方法调用。如:,y=y*(x+2);,abc,.,finc,(),(2),方括号,用来表示一维或多维数组的下标。如,y=b5;,int,a=new,int,1010;,(3),花括号,表示复合语句,即一个程序块的开始和结束。在,class,后表示一个类程序块。,(4),逗号,,用来分隔方法参数中的参数、同一变量连续声明以及用于逗号表达式等。,(5),分号;,是句子的终止符,任何合法的,Java,语句后,必须有分号,花括号后没有。,如:,public void,Simple(,long,in),if,(a=0),count+;,mike=true;,total+=in;,2.2 java,的基本数据类型和变量,1.,整数,整数类型表示范围和宽度:,类型,宽度,范围,long,64,-2,65,2,65,-1,int,32,-2,31,2,31,-1,short,16,-2,15,2,15,-1,byte,8,-2,7,2,7,-1,整数类型进制表示:,进制,前缀或后缀,范例,十进制数,-,25、-56,八进制数,o-,o312、-o32,十六进制数,0 x-,0 x25、0 x7f,长整形,-L,12,L、-34L,2.浮点数,浮点数表示范围:,类型,表示范围,single,1.40129846432481707,e-45,3.40282346638528860e+38,double,4.9406564581246544e-324,1.7976931486231570e+308,表数形式,组成,十进制,数字和小数点.,科学记数,数字,e(E),整数,3.字符型数据,用,单引号,括起来的单个字符(转义符)。,在,Java,中,字符类型不能用作整数,因为,Java,中没有无符号整数类型。变量只能为单字符。,字符形式,描述,ddd,1到3位8,进制数表示的字符,uxxxx,1到4位16进制数表示的字符,转义符,描述,n,换行,f,换页,t,水平制表,b,退格,单引号,”,双引号,反斜杠,r,回车,转义符表:,4.,布尔型数据,只有,true,(,真,),和,false,(,假,),,长度为,8,位。,5.,字符串型数据,用,双引号“,括起来的若干个字符。如“,Hello”,等,字符串可以使用“,+”,连接。,6.,变量,是,Java,语言运行中数值可变 的数据,通常记录运算中间结果或保存数据。,=,初值,例:,public class,Usevariable,public static void,main(String,arg,),boolean,b=true;,short,si,=128;,int,i=-99;,long,l=123456789L;,char,ch,=J;,float,f=3.1415926f;,double,d=-1.04E-4;,string,s=“,你好!”;,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);,2.3,表达式,是由变量、常量、对象、方法调用和操作符组成的式子。表达式的值是它运算的结果。,1.,赋值和强制类型转换,=,;,如:,k=i+j+5;,myString,=,Mydouble.toString,();,类型转换时,短数据转化为长数据时,可不做显式类型转换说明;长数据转化为短数据时,必须做显式类型转换说明。如:,byte,MyByte,=10;,int,MyInteger,=-1;,MyInteger,=,MyByte,;,MyByte,=(,byte,)MyInteger,;,2.,算术运算,(1)双目运算符,运算符,运算,例,功能,+,加,a+b,求,a,与,b,相加的和,-,减,a-b,求,a,与,b,相减的差,*,乘,a*b,求,a,与,b,相乘的积,/,除,A/b,求,a,除以,b,的商,%,取余,a%b,求,a,除以,b,所得的余数,注意:1.只有整形数据才能进行取余运算。,2.整形除法的结果只截取整数部分。,(2),单目运算符,运算符,运算,例,功能,+,自增,a+,或+,a,a=a+1,-,自减,a-,或-,a,a=a-1,-,求反,-a,a=-a,注意,,a+,和+,a,的,区别:,a+,是先,进行其他运算后进行单目运算,+,a,是先进行单目运算。,int,x=2;,int,y=(+x)*3;,结果为,x=3,y=9。,int,y=(x+)*3;,结果为,x=3,y=6。,3.,关系运算,运算符,功能,=,等于,!=,不等于,大于,=,大于等于,y&x+=y-,结果为:,x=3,y=5,b=,false,boolean,b=xy&x+=y-,结果为:,x=4,y=4,b=,false,5.,位运算,运算符,运算,例,功能,位反,x,x,按位取反,右移,xa,x,各位右移,a,位,左移,x,不带符号右移,xa,左边的空位添零,十进制,二进制补码,x2,x2,30,00011110,01111000,00000111,00000111,-17,11101111,10111100,11111011,00111011,6,其他运算符,三目条件运算符?:,如:,x?y:z,若,x=true,,则结果为,y;,若,x=false,,则结果为,z。,其他如:,=,,可为:,=,如:,x+=a x=x+a,运算符优先级和结合性,P47,2.4,流程控制语句,1.,结构化程序设计的三种基本流程,基本原则:任何程序都可以且只能由三种基本流程结成,即顺序结构、分支结构和循环结构。,(a),顺序,(b),分支,(c),循环,顺序结构语句按书写顺序依次执行。,分支结构根据表达式的值判断执行哪个分支。,循环结构在一定条件下反复执行一段语句。,2.分支语句,If,语句,语句形式:,if,(,条件表达式),语句块;,else,语句块;,其中,else,分支可选。,/*,这个程序功能为:是找出三个中最大的一个*/,import,java.applet.*,import,java.,awt,.*,import,java.,awt,.event.*,public class,FindMax,extends,Applet,implements,ActionListener,Label result;,TextField,in1,in2,in3;,Button,btn,;,int,a=0,b=0,c=0,max;,public void,init(),result=,new,Label(“,请先输入三个比较的整数”);,in1=,new,TextField,(5);/,定义三个文本框,in2=,new,TextField,(5);,in3=,new,TextField,(5);,btn,=,new,Button(“,比较”);/定义一个按钮,add(in1);/,输入,add(in2);,add(in3);,add(,btn,);,add(result);,brn,.,addActionListener,(,this,);,public void,actionPerformed,(,ActionEvent,e),a=Integer.,parseInt,(in1.,getText,();,b=Integer.,parseInt,(in2.,getText,();,c=Integer.,parseInt,(in3.,getText,();,if,(ab),if(ac),max=a;,else,max=c;,else,if,(ac),max=b;,else,max=c;,result.,setText,(“,三数中最大值是:”+,max);,(2).,switch,语句,是多分支的开关语句,其形式如下:,switch,(,表达式),case,判断值1:语句块1/分支1,case,判断值2:语句块2/分支2,case,判断值,n:,语句块,n/,分支,n,default,:,语句块,n+1/,分支,n+1,注意:1)表达式的值必须是整形或字符型。,2)每个,case,判断,只负责指明分支入口。,例:,switch,(,MyGrade,),case,“A”:,MyScore,=5;,case,“B”:,MyScore,=4;,case,“C”:,MyScore,=3;,default,:,MyScore,=0;,执行结果为?,为了使程序正确执行,必须在每个,case,语句后,添加退出语句,break。,上例改为:,switch,(,MyGrade,),case,“A”:,MyScore,=5;,break,;,case,“B”:,MyScore,=4;,break,;,case,“C”:,MyScore,=3;,break,;,default,:,MyScore,=0;,执行结果为?,如果若干分支共享一个出口。有下面的例子。,switch,(,MyGrade,),case,“A”:,case,“B”:,case,“C”:,MyScore,=1;/,及格,break,;,default,:,MyScore,=0;/,不及格,当,MyGrade,=“A”、”B”、”C”,时执行结果为?,3循环语句,条件表达式,循环体,条件表达式,循环体,表达式1,表达式2,循环体,表达式3,(,a)while(b)do-while,(c)for,T,F,T,T,F,F,(1),while,语句,语法格式:,while,(,条件表达式),循环体,当表达式为真时,执行循环体,然后无条件转移到表达式进行判断;为假时,跳过循环体执行。,例:,public class,Narcissus,public,static void,main(String,args,),int,i,j,k,n=100,m=1;,while,(n1000),int,i=n/100;,j=(n-j*100)/10;,k=n%10;,if,(Math.,pow,(i,3)+Math.,
展开阅读全文