《Java基本程序设计》PPT课件.ppt
《《Java基本程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Java基本程序设计》PPT课件.ppt(33页珍藏版)》请在装配图网上搜索。
第2章Java基本程序设计,2.1数据类型与变量,2.1.1数据类型,Java语言的数据类型只有两类:基本数据类型与引用类型。基本数据类型包括:boolean(布尔型)char(字符型)byte(字节型)short(短整型)int(整型)long(长整型)float(单精度浮点数型)double(双精度浮点数型),说明:boolean(布尔类型)的大小(所占用的字节数)在Java中没有明确规定。,void类型仅在定义一个方法的返回值类型时才可能用到,表示该方法无返回值,不用于定义变量。,2.1.2常量,1布尔型常量(boolean),常量值只有true或false。true表示“逻辑真”false表示“逻辑假”,2整型常量(int或long),有十进制、八进制、十六进制三种表示法:十进制:十进制整数,如:123,-48等。八进制:以数字0开头的八进制整数十六进制:以0 x或0X开头的十六进制整数整型常量(int)在机器中占32位,即4个字节。,3浮点数型常量(float或double),有两种表示形式:十进制小数形式和科学记数法形式。,2.1.2常量,4字符型常量(char),Java中的字符采用Unicode字符集的编码方案,是16位的无符号整数,占2个字节,表示的字符从065535。,字符型常量值有两种表示方法。,n表示换行,其Unicode值是10。r表示回车,其Unicode值是13。t表示Tab键,其Unicode值是9。ddd表示用三位八进制数代表的ASCII字符,从000377,可表示256个ASCII字符。uxxxx表示用四位十六进制数代表Unicode字符,从u0000uffff,表示所有的Unicode字符。表示字符,即u0027。表示字符,即u0022。表示字符,即u005c。,2.1.2常量,4字符型常量(char),注意Java中Unicode转义字符序列的处理时机。故下边的换行用法不正确:企图用u000a代替n,Strings=abcu000adef;在编译时首先将转义字符处理成:Strings=“abcdef”编译程序会报错:unclosedstringliteral正确用法应该是:Strings=“abcndef”;再如:doubleu5de5u8d44=2345.6;上述代码经编译处理等价于:double工资=2345.6;,2.1.2常量,5字符串常量(String),Java中字符串实际上是字符串类java.lang.String的一个对象,所有字符串常量值都用双引号括起来。,Java中主要的是标识符常量。一个标识符常量是一个变量,一旦它的值初始化后,就再不能改变。,什么是“Java字母”?若aracter.isJavaIdentifierStart(ch)返回值是true,则ch称为是一个“Java字母”。,按照Java编码规范,组成变量名各个单词的首字母要大写,但第一个单词的首字母要小写。,2.1.3变量,各种类型的变量在运算时,Java会进行类型转换。,自动类型转换,若类型转换时不会造成数据的精度丢失,则Java自动进行类型转换。方向如下:byte-short或char-int-long-float-doubleshort与char之间不能自动转换。,强制类型转换,不能按上述进行自动转换的则必须进行强制类型转换。格式是:(type)e,表示将表达式e的值的类型强制转换成type类型。,如:chara=啊;shortv;v=a;/错误:不能自动转换v=(short)a;/正确,2.1.4Java中的关键字,Java语言中定义了如下关键字,有特定的含义与用途,不能挪作它用。,2.2.1运算符,Java中表达各种运算的符号称为运算符,运算符的运算对象称为操作数。需要一个操作数参与运算的运算符称为单目运算符。,1算术运算符,算术运算符用于处理整型、浮点型、字符型的数据,进行算术运算。,Java对+作了重载(Java中惟一重载的符号),/用于整型表示取整,,%用于整型表示取余数。%用于float、double表示实数取余。,+表示自增。有前自增如,-表示自减。有前自减如,2.2.1运算符,publicclassTestPlusPluspublicstaticvoidmain(Stringargs)inta=1;intj=0;j=(+a)+(+a)+(+a);System.out.println(当a=1时,(+a)+(+a)+(+a)值为:+j);a=1;j=(a+)+(a+)+(a+);System.out.println(当a=1时,(a+)+(a+)+(a+)值为:+j);a=1;j=(+a)+(a+)+(+a)+(a+);System.out.println(当a=1时,(+a)+(a+)+(+a)+(a+)值为:+j);,【例2.1】测试运算符。问:当a=1时如下表达式:(+a)+(+a)+(+a);(a+)+(a+)+(a+);(+a)+(a+)+(+a)+(a+)值分别为多少?程序为:,2.2.1运算符,2关系运算符,关系运算符用于比较两个操作数,运算结果是布尔类型的值true或false。,3逻辑运算符,布尔逻辑运算符用于将多个关系表达式或true、false组成一个逻辑表达式。Java中有三种逻辑运算符:else/此处的else与第一个if相配System.out.println(a-b);,2.4.2switch语句,使用switch语句比使用多个嵌套的if语句更简明些。switch语句的语法格式如下:switch()case:case:case:default:,Switch语句的语义是:,首先计算的值,然后判该值与的值是否相等,若相等,则从开始,一直执行到它是一直执行到底的。,2.4.2switch语句,由于、及defalut仅起作标号的作用,故:1)不能有两个或以上的标号相同;2)这些标号的先后次序可以任意3)的值一旦与某一个标号相匹,则从该标号所代表的语句开始,一直执行到switch语句的结束。,inta;switch(a)default:System.out.println(“*default”);case1:System.out.println(“*case1”);case3:System.out.println(“*case3”);case2:System.out.println(“*case2”);,2.4.2switch语句,当变量a取值为4时,该程序片断的执行结果是:*default*case1*case3*case2当变量a取值为3时,该程序片断的执行结果是:*case3*case2,这种“一直执行到底”的语义方式并不好。因此,上述的switch语句片断可改进为:,inta;switch(a)default:System.out.println(“default”);break;case1:System.out.println(“case1”);break;case3:System.out.println(“case3”);break;case2:System.out.println(“case2”);break;/最后一条语句的break;可省略。,2.4.2switch语句,【例2.3】当x的值为1、3、5时,y的值为1;当x的值为2、4、6时,y的值为2;x为其它值时,y的值为3。,publicclassEx_Switchpublicstaticvoidmain(Stringargs)intx,y;x=12;switch(x)case1:case3:case5:y=1;break;case2:case4:case6:y=2;break;default:y=3;System.out.println(x的值:x+y的值:+y);,2.5.1循环语句,Java有三种循环语句有:while语句、do-while语句和for语句。,1while语句while语句的语法格式是:while(),while语句的语义是:,第1步:计算的值,若值是false,整个while语句执行结束,程序将继续执行紧跟在该while语句之后的语句,时循环体中的语句,一次都没有得到执行。值是true,则转第二步。,2.5.1循环语句,第2步:依次执行循环体中的、。转第1步。对while语句的进一步讨论:,(1)循环体中语句可能一次都不会得到执行。(2)循环体或布尔表达式中至少应该有这样的操作,它的执行会改变或影响while()中的值。(3)要注意while循环体的空语句。,publicstaticvoidmain(Stringargs)inti=1,s=0;while(i100);/因为这里有一个分号,表示循环体是空语句,成“死循环”s+=i;i+=2;System.out.println(“1到100之间所有奇数之和:”+s);,2.5.1循环语句,【例2.4】计算1到100之间所有的奇数之和。,publicclassEx_SumWhilepublicstaticvoidmain(Stringargs)inti=1,s=0;while(i100)s+=i;i+=2;System.out.println(1到100之间所有奇数之和:+s);,程序运行结果:1到100之间所有奇数之和:2500,2.5.1循环语句,2do-while语句do-while语句的语法格式是:dowhile();,do-while语句的语义是:第1步:依次执行循环体中的、。第2步:计算的值,对do-while语句的进一步讨论:(1)循环体中语句至少执行一次,循环体最少执行的次数是1次。,2.5.1循环语句,(2)循环体或布尔表达式中至少应该有这样的操作,它的执行会改变或影响while()中的值。(3)要注意do-while语句与while语句在语义上的细微差别。如下代码片断:求1+2+n之和。,while的程序片断:i=1;s=0;while(i=n)s+=i;i+;do-while的程序片断:i=1;s=0;dos+=i;i+;while(i=n);两者是等价的吗?不是。在n为0时,两者的结果有区别。为此,do-while中,i=1;可修改为i=0;,2.5.1循环语句,【例2.5】计算1到100之间所有的奇数之和。,publicclassEx_SumDoWhilepublicstaticvoidmain(Stringargs)inti=1,s=0;dos+=i;i+=2;while(i100);System.out.println(1到100之间所有奇数之和:+s);,程序运行结果:1到100之间所有奇数之和:2500,2.5.1循环语句,3for语句for语句是相当通用且相当灵活的表达循环的语句,它的语法格式是:for(e1;e2;e3),for语句的语义是:第1步:首先从左到右依次执行e1中用逗号分隔的各个表达式。,2.5.1循环语句,第2步:计算布尔表达式e2的值。,第3步:从左到右依次执行e3中用逗号分隔的各个表达式。转第2步。,对for语句的进一步讨论:(1)循环体中语句可能一次都不会得到执行,即循环体最少执行的次数是0次。(2)要注意for循环体的空语句。如:,publicstaticvoidmain(Stringargs)inti,s;for(i=1,s=0;i100;i+=2);s+=i;System.out.println(“1到100之间所有奇数之和:”+s);,2.5.1循环语句,因为for(i=1,s=0;i100;i+=2);后加了一个分号(;),循环体是一个空语句,结果不是所期望的。可以在for语句的e1部分定义变量,这些变量的作用域为整个for语句。,【例2.6】计算1.100之间所有的奇数之和。,publicclassEx_SumForpublicstaticvoidmain(Stringargs)inti,s;for(i=1,s=0;i100;i+=2)s+=i;System.out.println(1到100之间所有奇数之和:+s);,程序运行结果:1到100之间所有奇数之和:2500,2.5.2break语句,break语句不是循环语句,但与循环语句关系密切。break语句的语法格式是:break;其中:是用户自定义的任何合法标识符,在程序的同一个方法之中,必定在某处已定义了用该所标识的。,break语句在循环语句中的语义是:若没有,则break语句立即终止直接包含它的最内层循环。若带有,则break语句立即终止所标识的循环,程序从紧跟在该循环后的下一条语句继续执行。带标号的break语句的效果相当于从很深的内层循环往外跳。,2.5.3continue语句,continue语句只能用于循环语句中。基本语义是:立即开始新的一轮循环。continue语句的语法格式是:continue;,continue语句的语义:若没有标号,则跳过循环体中下面尚未执行的语句,立即开始新的一轮循环。对于for语句,跳过循环体中下面尚未执行的语句,但要执行第三部分(e3)后,才开始新的一轮循环。若带有标号,则对标号所标识的循环,立即开始执行新的一轮循环。,2.5.3continue语句,【例2.7】打印出100之内的所有素数,ppublicclassEx_Continuepublicstaticvoidmain(Stringargs)inti,j;Again:for(i=2;i100;i+)for(j=2;j=i-1;j+)if(i%j=0)continueAgain;System.out.print(+i);,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java基本程序设计 Java 基本 程序设计 PPT 课件
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文