JAVA程序员培训定制课程.ppt_第1页
JAVA程序员培训定制课程.ppt_第2页
JAVA程序员培训定制课程.ppt_第3页
JAVA程序员培训定制课程.ppt_第4页
JAVA程序员培训定制课程.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,运算符、表达式和流程控制,第四章,2,本章内容,变量及其作用域Java运算符表达式分支语句if-else语句switch语句循环语句for循环while循环do-while循环特殊的循环控制语句,3,Java变量分类,变量用于记录数值可变的数据按所属的数据类型划分:基本数据类型变量引用数据类型变量按被声明的位置划分:局部变量:方法或语句块内部定义的变量成员变量:方法外部、类的内部定义的变量,4,局部变量声明和初始化,Java变量使用前必须先声明和初始化(赋初值)局部变量声明语法格式DataTypevarName1=value1,varName2=value2变量声明和初始化举例:publicvoidamethod()inti;intj=i+5;/编译出错,变量i还未被初始化doubled=3.14;MyDatem;m=newMyDate(22,7,1964);System.out.println(m.getYear();,5,局部变量声明和初始化示例,publicclassTestLocalpublicstaticvoidmain(Stringargs)intx;if(args0!=null)x=7;inty=x;,6,成员变量声明和初始化,成员变量在类的定义中声明在创建对象的同时创建有关的成员变量成员变量创建后系统自动对其进行默认初始化显式初始化,7,成员变量声明和初始化示例,publicclassBookprivateStringtitle;publicStringgetTitle()returntitle;publicstaticvoidmain(Stringargs)Bookb=newBook();Strings=b.getTitle();/CompilesandrunsStringt=s.toLowerCase();/RuntimeException!,8,变量作用域,局部变量的作用域就是它所在的方法或语句块在程序调用方法(进入语句块)时,局部变量才被创建并可用,随方法(语句块)的退出,局部变量将被销毁成员变量依附于对象(局部变量)存在,具有与对象相同的生存期和作用域。,9,变量作用域举例,publicclassTestprivateinti=1;publicvoidmethod1()inti=4,j=5;this.i=i+j;method2(7);publicvoidmethod2(inti)intj=8;this.i=i+j;System.out.println(this.i);publicstaticvoidmain(Stringargs)Testt=newTest();t.method1();,main,栈内存,t,this,i,j,method1,4,5,7,8,i,j,this,method2,Test对象,i,10,Ex1,练习上页例程:Test.java,在各方法中添加输出语句显示Test对象属性i(this.i)的值,分析程序执行流程并体会各变量的作用域。/输出语句可采用:System.out.println(this.i);,11,运算符,算术运算符:+,*,/,%,+,关系运算符:,=,赋值运算符:=扩展赋值运算符:+=,=,*=,/=字符串连接运算符:+,12,等于运算符示例(1),classComparePrimitivespublicstaticvoidmain(Stringargs)System.out.println(charactera=a?+(a=a);System.out.println(charactera=b?+(a=b);System.out.println(5!=6?+(5!=6);System.out.println(5.0=5L?+(5.0=5L);System.out.println(true=false?+(true=false);,13,等于运算符示例(2),booleanb=false;if(b=true)System.out.println(“bistrue”);elseSystem.out.println(“bisfalse”);,14,等于运算符示例(3),importjava.awt.Button;classCompareReferencepublicstaticvoidmain(Stringargs)Buttona=newButton(Exit);Buttonb=newButton(Exit);Buttonc=a;System.out.println(Isreferencea=b?+(a=b);System.out.println(Isreferencea=c?+(a=c);,15,增量、减量运算符示例(1),classMathTeststaticintplayers=0;publicstaticvoidmain(Stringargs)System.out.println(playersonline:+players+);System.out.println(Thevalueofplayersis+players);System.out.println(Thevalueofplayersisnow+players);,16,增量、减量运算符示例(2),intx=2;inty=3;if(y=x+)|(xb;将二进制形式的a逐位右移b位,最高位空出的b位补0。,22,移位运算符(2),移位运算符性质适用数据类型:byte、short、char、int、long,对低于int型的操作数将先自动转换为int型再移位对于int型整数移位ab,系统先将b对32取模,得到的结果才是真正移位的位数对于long型整数移位时ab,则是先将移位位数b对64取模,23,移位运算符(3),移位运算符应用举例,24,赋值运算符(1),赋值运算符=当=两侧的数据类型不一致时,可以适用默认类型转换或强制类型转换原则进行处理longl=100;inti=(int)l;特例:可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围byteb=12;/合法byteb=4096;/非法,25,赋值运算符(2),当把一个引用变量赋给另一个引用变量是,两个变量引用了同一个对象。(String除外)示例:importjava.awt.Dimension;classReferenceTestpublicstaticvoidmain(Stringargs)Dimensiona=newDimension(5,10);System.out.println(a.height=+a.height);Dimensionb=a;b.height=30;System.out.println(a.height=+a.height+afterchangetob);,26,赋值运算符(3),扩展赋值运算符,27,字符串连接运算符+,+除用于算术加法运算外,还可用于对字符串进行连接操作inti=300+5;Strings=hello,+world!;+运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接Stringa=String;intb=3;intc=7;System.out.println(a+b+c);System.out.println(a+(b+c));,28,表达式,表达式是符合一定语法规则的运算符和操作数的序列a5.0+a(a-b)*c-4i3;intk=a32;System.out.println(“i=”+i);System.out.println(j=+j);System.out.println(k=+k);System.out.println(m=+m);,31,分支语句,分支语句实现程序流程控制的功能,即根据一定的条件有选择地执行或跳过特定的语句Java分支语句分类if-else语句switch语句,32,if-else语句语法格式,if(boolean类型表达式)语句或语句块;if(boolean类型表达式)语句或语句块;elseif(boolean类型表达式)语句或语句块;else语句或语句块;,33,if-else语句应用举例,publicclassTestpublicstaticvoidmain(Stringargs)Testt=newTest();t.test(75);publicvoidtest(intage)if(age250)System.out.println(是个妖怪!);elseSystem.out.println(此人芳龄+age+马马乎乎啦!);,34,switch语句语法格式,switch(exp)caseconst1:statement1;break;caseconst2:statement2;break;caseconstN:statementN;break;default:statement_dafault;break;,35,switch语句应用举例,publicclassTestpublicstaticvoidmain(Stringargs)inti=1;switch(i)case0:System.out.println(zero);break;case1:System.out.println(one);break;case2:System.out.println(two);break;default:System.out.println(default);break;,36,switch语句有关规则,表达式expr的返回值必须是下述几种类型之一:int,byte,char,short;case子句中的值const必须是常量,且所有case子句中的值应是不同的;default子句是任选的;break语句用来在执行完一个case分支后使程序跳出switch语句块;,37,Ex3,参照M04-24,26页的例子,练习使用if-else、switch分支语句,注意体会break/default语句的用法;,38,循环语句,循环语句功能在循环条件满足的情况下,反复执行特定代码循环语句的四个组成部分初始化部分(init_statement)循环条件部分(test_exp)循环体部分(body_statement)迭代部分(alter_statement)循环语句分类for循环while循环do/while循环,39,for循环语句,语法格式for(init_statement;test_exp;alter_statement)body_statement应用举例publicclassForLooppublicstaticvoidmain(Stringargs)intresult=0;for(inti=1;i=100;i+)result+=i;System.out.println(result=+result);,40,while循环语句,语法格式init_statementwhile(test_exp)body_statement;alter_statement;应用举例publicclassWhileLooppublicstaticvoidmain(Stringargs)intresult=0;inti=1;while(i=100)result+=i;i+;System.out.println(result=+result);,41,do/while循环语句,语法格式init_statementdobody_statement;alter_statement;while(test_exp);应用举例publicclassWhileLooppublicstaticvoidmain(Stringargs)intresult=0,inti=1;doresult+=i;i+;while(i=100);System.out.println(result=+result);,42,特殊流程控制语句,break语句break语句用于终止某个语句块的执行break;break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块label1:label2:label3:breaklabel2;,43,特殊流程控制语句,break语句用法举例publicclassTestBreakpublicstaticvoidmain(Stringargs)for(inti=0;i10;i+)if(i=3)break;System.out.println(i=+i);System.out.println(GameOver!);,44,特殊流程控制语句,continue语句continue语句用于跳过某个循环语句块的一次执行continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环continue语句用法举例1publicclassContinueTestpublicstaticvoidmain(Stringargs)for(inti=0;i100;i+)if(i%10=0)continue;System.out.println(i);,45,特殊流程控制语句,publicclassPrimeNumberpublicstaticvoidmain(Stringargs)intn=0;outer:for(inti=101;i200;i+=2)/外层循环for(intj=2;ji;j+)/内层循环if(i%j=0)con

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论