JAVA程序员培训定制课程c0课件4.ppt

上传人(卖家):晟晟文业 文档编号:4032928 上传时间:2022-11-05 格式:PPT 页数:46 大小:204.10KB
下载 相关 举报
JAVA程序员培训定制课程c0课件4.ppt_第1页
第1页 / 共46页
JAVA程序员培训定制课程c0课件4.ppt_第2页
第2页 / 共46页
JAVA程序员培训定制课程c0课件4.ppt_第3页
第3页 / 共46页
JAVA程序员培训定制课程c0课件4.ppt_第4页
第4页 / 共46页
JAVA程序员培训定制课程c0课件4.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、第四章 1变量及其作用域Java运算符表达式分支语句 if-else语句 switch语句循环语句 for 循环 while 循环 do-while 循环特殊的循环控制语句2变量用于记录数值可变的数据按所属的数据类型划分:基本数据类型变量引用数据类型变量按被声明的位置划分:局部变量:方法或语句块内部定义的变量成员变量:方法外部、类的内部定义的变量3Java变量使用前必须先声明和初始化(赋初值)局部变量声明语法格式 DataType varName1=value1,varName2=value2 变量声明和初始化举例:public void amethod()int i;int j=i+5;/编

2、译出错,变量i还未被初始化double d=3.14;MyDate m;m=new MyDate(22,7,1964);System.out.println(m.getYear();4public class TestLocal public static void main(String args)int x;if(args0!=null)x=7;int y=x;5成员变量在类的定义中声明在创建对象的同时创建有关的成员变量成员变量创建后系统自动对其进行默认初始化显式初始化6public class Book private String title;public String getTitl

3、e()return title;public static void main(String args)Book b=new Book();String s=b.getTitle();/Compiles and runsString t=s.toLowerCase();/Runtime Exception!7局部变量的作用域就是它所在的方法或语句块在程序调用方法(进入语句块)时,局部变量才被创建并可用,随方法(语句块)的退出,局部变量将被销毁成员变量依附于对象(局部变量)存在,具有与对象相同的生存期和作用域。8public class Test private int i=1;public v

4、oid method1()int i=4,j=5;this.i=i+j;method2(7);public void method2(int i)int j=8;this.i=i+j;System.out.println(this.i);public static void main(String args)Test t=new Test();t.method1();main栈内存tthisijmethod14578ijthismethod2Test对象i91.练习上页例程:Test.java,在各方法中添加输出语句显示Test对象属性i(this.i)的值,分析程序执行流程并体会各变量的作用

5、域。2./输出语句可采用:System.out.println(this.i);10算术运算符:+,*,/,%,+,关系运算符:,=,赋值运算符:=扩展赋值运算符:+=,=,*=,/=字符串连接运算符:+11等于运算符示例(1)class ComparePrimitives public static void main(String args)System.out.println(character a=a?+(a=a);System.out.println(character a=b?+(a=b);System.out.println(5!=6?+(5!=6);System.out.pri

6、ntln(5.0=5L?+(5.0=5L);System.out.println(true=false?+(true=false);12等于运算符示例(2)boolean b=false;if(b=true)System.out.println(“b is true”);else System.out.println(“b is false”);13等于运算符示例(3)import java.awt.Button;class CompareReference public static void main(String args)Button a=new Button(Exit);Button

7、 b=new Button(Exit);Button c=a;System.out.println(Is reference a=b?+(a=b);System.out.println(Is reference a=c?+(a=c);14增量、减量运算符示例(1)class MathTest static int players=0;public static void main(String args)System.out.println(players online:+players+);System.out.println(The value of players is +players

8、);System.out.println(The value of players is now +players);15增量、减量运算符示例(2)int x=2;int y=3;if(y=x+)|(x 31)/do something with dif(i 31)System.out.println(非法赋值);18class TestOR public static void main(String args)if(isItSmall(3)|(isItSmall(7)System.out.println(Result is true);if(isItSmall(6)|(isItSmall(

9、9)System.out.println(Result is true);public static boolean isItSmall(int i)if(i 5)System.out.println(i less than 5);return true;else System.out.println(i greater than 5);return false;19位运算符功能 -取反&-按位与|-按位或 -按位异或位运算符功能说明:010011111011000001101101&010010011100101101101101|111011111100101101101101 10100

10、1101100101120左移ab;将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位;无符号右移ab;将二进制形式的a逐位右移b位,最高位空出的b位补0。21移位运算符性质适用数据类型:byte、short、char、int、long,对低于int型的操作数将先自动转换为int型再移位 对于int型整数移位ab,系统先将b对32取模,得到的结果才是真正移位的位数对于long型整数移位时ab,则是先将移位位数b对64取模22移位运算符应用举例2227=00000000 00000000 00001000 10110011 22273=00000000 00000000 0000000

11、1 00010110 22273=00000000 00000000 00000001 00010110-2227=11111111 11111111 11110111 01001101-22273=11111111 11111111 11111110 11101001-22273=00011111 11111111 11111110 11101001 23赋值运算符=当=两侧的数据类型不一致时,可以适用默认类型转换或强制类型转换原则进行处理 long l=100;int i=(int)l;特例:可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不

12、超出其表数范围 byte b=12;/合法 byte b=4096;/非法24v当把一个引用变量赋给另一个引用变量是,两个变量引用了同一个对象。(String除外)示例:import java.awt.Dimension;class ReferenceTest public static void main(String args)Dimension a=new Dimension(5,10);System.out.println(a.height=+a.height);Dimension b=a;b.height=30;System.out.println(a.height=+a.heigh

13、t+after change to b);25扩展赋值运算符运算符 用法举例 等效的表达式+=a+=b a=a+b-=a-=b a=a-b*=a*=b a=a*b/=a/=b a=a/b%=a%=b a=a%b&=a&=b a=a&b|=a|=b a=a|b=a=b a=ab=a=b a=a=a=b a=ab=a=b a=ab26+除用于算术加法运算外,还可用于对字符串进行连接操作int i=300+5;String s=hello,+world!;+运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接String a=String;i

14、nt b=3;int c=7;System.out.println(a+b+c);System.out.println(a+(b+c));27表达式是符合一定语法规则的运算符和操作数的序列 a5.0+a(a-b)*c-4i30&i%10!=0 表达式的类型和值对表达式中操作数进行运算得到的结果称为表达式的值 表达式的值的数据类型即为表达式的类型 表达式的运算顺序首先应按照运算符的优先级从高到低的顺序进行 优先级相同的运算符按照事先约定的结合方向进行28Separator.();,AssociativeOperatorsR to L+-!(data type)L to R*/%L to R+-L

15、 to R L to R =instanceofL to R=!=L to R&L to RL to R|L to R&L to R|R to L?:R to L=*=/=%=+=-=&=|=29练习下面的程序,排除编译错误,分析其输出结果:public class MyTestpublic static void main(String args)int a=10int i=a;int j=a3;int k=a32;System.out.println(“i=”+i);System.out.println(j=+j);System.out.println(k=+k);System.out.p

16、rintln(m=+m);30分支语句实现程序流程控制的功能,即根据一定的条件有选择地执行或跳过特定的语句Java分支语句分类if-else 语句switch 语句31if(boolean类型表达式)语句或语句块;if(boolean类型表达式)语句或语句块;else if(boolean类型表达式)语句或语句块;else 语句或语句块;32public class Testpublic static void main(String args)Test t=new Test();t.test(75);public void test(int age)if(age250)System.out.

17、println(是个妖怪!);else System.out.println(此人芳龄 +age+马马乎乎啦!);33语法格式switch(exp)case const1:statement1;break;case const2:statement2;break;case constN:statementN;break;default:statement_dafault;break;34public class Test public static void main(String args)int i=1;switch(i)case 0:System.out.println(zero);br

18、eak;case 1:System.out.println(one);break;case 2:System.out.println(two);break;default:System.out.println(default);break;35表达式expr的返回值必须是下述几种类型之一:int,byte,char,short;case子句中的值const 必须是常量,且所有case子句中的值应是不同的;default子句是任选的;break语句用来在执行完一个case分支后使程序跳出switch语句块;361.参照M04-24,26页的例子,练习使用if-else、switch分支语句,注意

19、体会break/default语句的用法;37循环语句功能在循环条件满足的情况下,反复执行特定代码循环语句的四个组成部分初始化部分(init_statement)循环条件部分(test_exp)循环体部分(body_statement)迭代部分(alter_statement)循环语句分类for 循环while 循环do/while 循环38语法格式 for(init_statement;test_exp;alter_statement)body_statement应用举例public class ForLoop public static void main(String args)int

20、result=0;for(int i=1;i=100;i+)result+=i;System.out.println(result=+result);39语法格式 init_statementwhile(test_exp)body_statement;alter_statement;应用举例public class WhileLoop public static void main(String args)int result=0;int i=1;while(i=100)result+=i;i+;System.out.println(result=+result);40语法格式 init_st

21、atementdo body_statement;alter_statement;while(test_exp);应用举例public class WhileLoop public static void main(String args)int result=0,int i=1;do result+=i;i+;while(i=100);System.out.println(result=+result);41break 语句break语句用于终止某个语句块的执行 break;break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块 label1:label2:labe

22、l3:break label2;42break 语句用法举例 public class TestBreakpublic static void main(String args)for(int i=0;i10;i+)if(i=3)break;System.out.println(i=+i);System.out.println(Game Over!);43continue 语句continue语句用于跳过某个循环语句块的一次执行 continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 continue语句用法举例1public class ContinueTe

23、st public static void main(String args)for(int i=0;i 100;i+)if(i%10=0)continue;System.out.println(i);44public class PrimeNumberpublic static void main(String args)int n=0;outer:for(int i=101;i200;i+=2)/外层循环 for(int j=2;ji;j+)/内层循环 if(i%j=0)continue outer;/不能使用 break,为什么?System.out.print(+i);n+;if(n6)continue;System.out.println();/输出六个数据后换行 n=0;continue语句用法举例2451.编写程序,用一个for循环计算1+2+3+100的值,并输出计算结果。使用其它循环-while,do while 分别实现上述任务。2.编写程序,采用适当的循环和流控制语句实现下述功能:打印输出0200之间能被7整除但不能被4整除的所有整数;要求每行显示6个数据;练习目的:体会和巩固循环语句、分支语句、流控制语句、表达式的计算次序、逻辑运算符的用法;46

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(JAVA程序员培训定制课程c0课件4.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|