《JAVA大学教学课件第三章语言基础》由会员分享,可在线阅读,更多相关《JAVA大学教学课件第三章语言基础(32页珍藏版)》请在金锄头文库上搜索。
1、 Java语言程序设计语言程序设计第三章第三章:Java语言基础语言基础 3.1 引入引入程序举例:publicclassBasicsDemopublicstaticvoidmain(Stringargs)intsum=0;for(intcurrent=1;current op1op2op1大于op2的时候z=op1=op2 op1大于等于op2的时候z op1op2op1小于op2的时候z=op1=op2 op1小于等于op2的时候z=op1=op2 op1等于op2的时候z!=op1!=op2 op1不等于op2的时候 3.3 操作符操作符-5逻辑运算符逻辑运算符z运算符 用法 在什么情况
2、下返回truez&op1&op2op1和op2都是true,有条件地计算op2|op1|op2op1或者op2是true,有条件地计算op2!opop为false 3.3 操作符操作符-5class Testpublic static void main(String arg) int b=2;int c=3;int a=0;if(61)System.out.println(a=+a);System.out.println(a=+a);System.out.println(b=+b);System.out.println(c=+c); 3.3 操作符操作符-6位运算符位运算符z运算符用法在什么
3、情况下返回trueop1op2将op1右移op2个位op1op1op2将op1右移op2个位(无符号的)&op1&op2按位与|op1|op2按位或op1op2按位异或op2按位取反 3.3 操作符操作符-6-1 3.3 操作符操作符-7其它运算符其它运算符z运算符描述z?:作用相当于if-else语句z用于声明数组,创建数组以及访问数组元素z. 用于访问对象实例或者类的类成员函数z(params)意义一个以逗号分开的参数系列z(type)将数值转换为一个的类型znew创建一个新的对象或者新的数组zinstanceof决定是否第一个运算对象是第二个运算对象的一个实例 3.3 操作符操作符-8各
4、种运算符的优先顺序各种运算符的优先顺序z后缀运算符 .(params)expr+expr-z单元运算符 +expr-expr+expr-expr!z创建运算符 new(type)exprz乘法运算符 */%z加法运算符 +-z移位运算符 z关系运算符 =instanceofz相等与不等 =!=z按位运算符 AND&z按位运算符 ORz按位运算符 OR|z逻辑运算符 AND&z逻辑运算符 OR|z条件运算符 ?:z赋值运算符 =+=-=*=/=%=&=|= 3.3 操作符操作符-9类型转换:类型转换:类型按精度从类型按精度从“底底”到到“高高”排列了顺序。排列了顺序。byte-short-int
5、-long-float-doublechar-int级别低的赋给级别高的变量,系统自动完成数据类型的转换。级别低的赋给级别高的变量,系统自动完成数据类型的转换。floatx=100;如果输出x的值,结果将是100.0例如intx=50;floaty;y=x;如果输出y的值,结果将是50.0。级别高的值赋给级别底变量,必须使用显示类型转换运算。级别高的值赋给级别底变量,必须使用显示类型转换运算。例如: intx=(int)23.89; longy=(long)34.98F;强制转换运算可能导致精度的损失。 3.3 操作符操作符-10问题:问题:1、两个byte类型的数相加是什么样的呢?2、cha
6、r和short类型? 3.4 流程控制流程控制语句句-11、If 语句:语句:(条件表达式必须是布尔类型的)zpublic class IfElseDemo zpublic static void main(String args) zint testscore = 76;zchar grade;zif (testscore = 90) zgrade = A;z else if (testscore = 80) zgrade = B;z else if (testscore = 70) zgrade = C;elseif(testscore=60)grade=D;elsegrade=F;Sys
7、tem.out.println(Grade=+grade);程序的输出为:Grade=C 3.4 流程控制流程控制语句句-22、switch 语句:语句:publicclassSwitchDemopublicstaticvoidmain(Stringargs)intmonth=8;switch(month)case1:System.out.println(January);break;case2:System.out.println(February);break;case3:System.out.println(March);break;case4:System.out.println(Ap
8、ril);break;case5:System.out.println(May);break;case6:System.out.println(June);break;case7:System.out.println(July);break;case8:System.out.println(August); break;case9:System.out.println(September);break;case10:System.out.println(October);break;case11:System.out.println(November);break;case12:System.
9、out.println(December);break;default:System.out.println(“Error);break;*switch表达式与case表达式的类型可以是bytecharshortintlong 3.4 流程控制流程控制语句句-33、while语句:publicclassWhileDemopublicstaticvoidmain(Stringargs)StringcopyFromMe=Copythisstringuntilyou+encountertheletterg.;StringBuffercopyToMe=newStringBuffer();inti=0;
10、charc=copyFromMe.charAt(i);while(c!=g)copyToMe.append(c);c=copyFromMe.charAt(+i);System.out.println(copyToMe);最后一行打印出来的数值为:Copythisstrin思考题:请用dowhile(直到型)语句改写 3.4 流程控制流程控制语句句-44 4、forfor语句:语句:publicclassForDemopublicstaticvoidmain(Stringargs)intarrayOfInts=32,87,3,589,12,1076,2000,8,622,127;for(inti
11、=0;iarrayOfInts.length;i+)System.out.print(arrayOfIntsi+);System.out.println();这个程序的输出为:3287358912107620008622127.无限循环for(;true;)for(;)while(true)dowhile(true)/5.0以后版本使用新的for语句for(:)比如:for(inttem:arrayOfInt) 3.4 流程控制流程控制语句句-55 5、breakbreak语句:语句:publicclassBreakDemopublicstaticvoidmain(Stringargs)int
12、arrayOfInts=32,87,3,589,12,1076,2000,8,622,127;intsearchfor=12;inti=0;booleanfoundIt=false;for(;iarrayOfInts.length;i+)if(arrayOfIntsi=searchfor)foundIt=true;break;if(foundIt)System.out.println(Found+searchfor+atindex+i);elseSystem.out.println(searchfor+notinthearray);这个程序的输出为:Found12atindex4 3.4 流程
13、控制流程控制语句句-66 6、continuecontinue语句:语句:publicclassContinueDemopublicstaticvoidmain(Stringargs)StringBuffersearchMe=newStringBuffer(peterpiperpickedapeckofpickledpeppers);intmax=searchMe.length();intnumPs=0;for(inti=0;imax;i+)/interestedonlyinpsif(searchMe.charAt(i)!=p)continue;/processpsnumPs+;searchM
14、e.setCharAt(i,P);System.out.println(Found+numPs+psinthestring.);System.out.println(searchMe);这个程序的输出为:Found9psinthestring.PeterPiPerPickedaPeckofPickledPePPers 3.4 流程控制流程控制语句句-77、带标号break和continue语句:classLabeledBreakpublicstaticvoidmain(Stringargs)intj;outer:for(;true;)inner:for(j=1;j10;j+)if(j=1)Sy
15、stem.out.println(j);continueinner;if(j=2)System.out.println(j);continue;if(j=3)System.out.println(j);breakouter;思考题:另外一次跳出多重循环的方法。使用标记变量的连环跳。 3.4 流程控制流程控制语句句-88、return语句:最后讲讲分支结构的最后一个return语句。你可以使用return来退出当前的方法。控制流程返回到调用方法的下一个语句。这个return语句有两种形式:一种是返回一个数值,另外一种没有返回数值。为了返回一个数值,简单地,可以将数值放置在return关键字后面即
16、可。例如:return+count;由return返回的数值类型必须匹配方法声明返回的数值类型。当方法被声明void,return的使用就不返回一个数值:return3.6 小程序设计小程序设计-11、计算程序的运行时间的方法:、计算程序的运行时间的方法:importjava.util.Calendar;classLesson2publicstaticvoidmain(Stringargs)longcur1,cur2,interval;Calendarcal=Calendar.getInstance();cur1=cal.getTimeInMillis();for(inti=1;i1000;i+)System.out.println(i);cal=Calendar.getInstance();cur2=cal.getTimeInMillis();System.out.println(cur1);System.out.println(cur2);interval=cur2-cur1;System.out.println(interval); 3.6 小程序设计小程序设计-22、数学函数与随机数。3、随机产生26个字母AZ中的一个。4、计算n!的两种方法:递归和循环。5、输出100以内的素数,要求每行五个数。6、汉诺塔问题。