《《Java程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Java程序设计》PPT课件.ppt(111页珍藏版)》请在金锄头文库上搜索。
1、第3章 Java程序设计基础 第第3章章 Java程序设计基础程序设计基础第3章 Java程序设计基础 3.1Java的字符集和保留字3.2Java提供的基本数据类型3.3变量和常量3.4运算符和表达式3.5基本流程控制语句3.6综合运用实例第3章 Java程序设计基础 3.1Java的字符集和保留字Java源代码使用的是Unicode编码,Unicode采用16位二进制表示一个字符,比ASCII字符集通常最多只有255个字符多的多,可达65535个。Java符号分为:标识符、关键字、运算符。 3.1.1 Java的字符集第3章 Java程序设计基础 不提倡的程序风格一种不好的风格一种不好的风
2、格class Point int x,y;Point(int x1,int y1) x=x1;y=y1;Point()this(0,0);void moveto(int x1,int y1)x=x1;y=y1;第3章 Java程序设计基础 提倡的程序风格class Point int x, y;/ 点的点的x轴、轴、y轴坐标轴坐标Point(int x1, int y1) / 构造方法构造方法x = x1;y = y1;Point()/ 构造方法构造方法this( 0, 0);void moveto(int x1, int y1) / 点移动到(点移动到(x1, y1)x = x1;y = y
3、1;第3章 Java程序设计基础 程序应使用缩进格式,使得同一层语句的程序应使用缩进格式,使得同一层语句的起始列位置相同起始列位置相同程序中适当地加入注释,会增加程序的程序中适当地加入注释,会增加程序的可可读性读性 。注释不影响程序的执行结果,编译注释不影响程序的执行结果,编译器将忽略注释器将忽略注释Java中的三种注释形式:中的三种注释形式:/ 在一行的注释在一行的注释/* 一行或多一行或多 行的注释行的注释 */第3章 Java程序设计基础 3.1Java的字符集和保留字标识符定义:程序员对程序代码中的各个元素加以命名。在Java语言中,对标识符的命名规定如下:标识符由字母、下划线(_)、
4、美元符($)和数字组成,且第一个字符不能是数字。其中,字母包括大小写英文字母和汉字。Java的标识符是区分大小写的。标识符命名时应避免使用单个字符,应见名知意。标识符没有最大长度限制。 3.1.1 Java的字符集第3章 Java程序设计基础 Java编码体制Java中的一些命名约定中的一些命名约定 :变量名、对象名、方法名、包名等标识符全部采用小写变量名、对象名、方法名、包名等标识符全部采用小写字母;如果标识符由多个单词构成,则首字母小写,其字母;如果标识符由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写。后单词的首字母大写,其余字母小写。如如getAge。类名首字母大写。类
5、名首字母大写。常量名全部字母大写。常量名全部字母大写。第3章 Java程序设计基础 判断标识符是否正确判断标识符是否正确IdentifierIdentifier2Sun 2Sun User_nameUser_name $change $change classclass _sys_var1 _sys_var1 # #mynamemyname 第3章 Java程序设计基础 判断标识符是否正确判断标识符是否正确Identifier Identifier 2Sun 2Sun / / 错误:以数字错误:以数字2 2开头开头User_nameUser_name $change $change class
6、class / /错误:错误:是是JavaJava的关键字,有特殊含义的关键字,有特殊含义_sys_var1 _sys_var1 # #mynamemyname / /错误:错误:含有其他符号含有其他符号# #第3章 Java程序设计基础 3.1.2Java的关键字Java语言规定了特定含义的标识符被称为关键字,也称为保留字(reservedword)。用户只能按照系统规定的方式使用保留字,不能自行定义。注意:Java语言中的保留字均用小写字母表示。3.1Java的字符集和保留字第3章 Java程序设计基础 Java关键字abstractbooleanbreakbytecasecatchcha
7、rclassconstcontinuedodoubleelseextendsfalsefinallycastdefaultfinalfinallyfloatforfuturegenericgotoifimplementsimportinnerinstanceofintinterfacelongnativenewnulloperatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile第3章
8、 Java程序设计基础 3.2Java提供的基本数据类型表3-1 Java的基本数据类型简单数据数据类型型布尔类型(boolean)字符类型(char)整数类型byteshortintlong浮点类型floatdouble复合数据复合数据类型型类(class)接口(interface)数组第3章 Java程序设计基础 3.3常量常量(Constant)是在程序运行过程中不能修改的量,用关键字final实现。定义格式如下:final 数据类型 常量名1=值1;例如:如:finalfloatPI=3.14159;finalcharSEX=M;finalintMAX=100;第3章 Java程序设计
9、基础 声明符号常量的优点如下:声明符号常量的优点如下:u增加了程序的可读性,从常量名可知常量的含义。u增强了程序的可维护性,只要在常量的声明处修改常量的值,就自动修改了程序中所有地方所使用的常量值。第3章 Java程序设计基础 3.3变量和常量变量(Variable)是程序运行过程中可以被修改的量,用于存储数据。可以同时声明同一数据类型的多个变量,各变量之间用逗号分隔。定义格式如下:数据类型数据类型 变量名变量名1=1=值值1;1; 例如:floatx=25.4,y;charc;booleanflag1=true,flag2;intl,m;其中,变量x和flag1被赋予初始值,其它变量没有初始
10、化。第3章 Java程序设计基础 3.3变量和常量1布尔类型(boolean)布尔型类型也称作逻辑类型,取值只有两个值true和false。例:booleanb=true;/定义布尔型变量b第3章 Java程序设计基础 例:例:使用逻辑类型变量publicclassLogicpublicstaticvoidmain(Stringargs)booleaninstance1=true;booleaninstance2=false;System.out.println(“逻辑状态1=”+instance1+”“+”逻辑状态2=+instance2);程序运行结果如下:逻辑状态1=true逻辑状态2=
11、false第3章 Java程序设计基础 3.3变量和常量2字符类型(char)字符常量是用单引号括起来的一个字符,如a,A。一个char表示一个Unicode字符,其值占16位,范围为065535。第3章 Java程序设计基础 字符类型数据的表示方法:u用单引号括起来的单个字符例:charc=a;u用Unicode码表示,前缀是“u”u例:chara=u0067;uUnicide字符集中的控制字符需要通过转义字符表示。chartab=t;/表示tab键转义字符功能Unicode码b退格u0008t水平制表u0009n换行u000af换页u000cr回车u000d第3章 Java程序设计基础 例
12、:例:使用字符类型变量publicclassCharTestpublicstaticvoidmain(Stringargs)charc=a;chartab=t;chara=u0067;System.out.print(c=+c);System.out.print(tab);System.out.print(a=+a);程序运行结果如下:c=aa=g第3章 Java程序设计基础 3整型数据整型常量常量有以下形式:u十进制数。用09之间的数字表示的数,其首位不能为0。u八进制数。用07之间的数字表示的数,以0为前缀。u十六进制数。用09之间的数字或af,AF之间的字母表示的数,以0x或0X为前缀。
13、(1)十进制整数例:123,-456,0。(2)八进制整数以0开头。例:0123表示十进制数83,-011表示十进制数-9。(3)十六进制整数以0x或0X开头。例:0x123表示十进制数291,-0XBABE表示十进制数47860。3.3变量和常量第3章 Java程序设计基础 3.3变量和常量Java为整型变量变量提供了byte、short、int和long四种类型。数据类型所占字节取值范围long(长整型)8-92233720368547758089223372036854775807int(整型)4-21474836482147483647short(短整型)2-3276832767byt
14、e(字节型)1-128127第3章 Java程序设计基础 例:例:使用整数型变量publicclassIntegerspublicstaticvoidmain(Stringargs)inta=015;/八进制数intb=20;/十进制数intc=0x25; /十六进制数shortx=30;longy=123456L;System.out.println(a=+a);/输出a的值System.out.println(b=+b);System.out.println(c=+c);System.out.println(x=+x);System.out.println(y=+y);第3章 Java程序
15、设计基础 程序运行结果如下:a=13b=20c=37x=30y=123456第3章 Java程序设计基础 3.3变量和常量浮点数类型有2种表示形式:u标准记数法:由整数部分、小数点和小数部分组成,如12.37u科学记数法:由尾数、E或e及阶码组成,也称为指数形式,如2.5E4表示2.5104u有2种浮点数类型:float(单精度浮点数)和double(双精度浮点数)。u单精度占用内存更小,双精度表示范围更大。u一个浮点数缺省类型为double。要表示一个浮点数为float型,在其后加后缀F或f,如34.5f。浮点数类型所占字节取值范围float(单精度浮点数)4-3.4E383.4E38dou
16、ble(双精度浮点数)8-1.7E3081.7E308第3章 Java程序设计基础 3.3变量和常量例判断是double还是float:0.123(double型)1.23(double型)1.23f(float型)定义doublea=0.897,b;floatpi=3.14f;第3章 Java程序设计基础 例:使用单精度和双精度类型变量publicclassFloatspublicstaticvoidmain(Stringargs)floata=35.45f;doubleb=3.56e18;System.out.println(a=+a);System.out.println(b=+b);程
17、序运行结果如下:a=35.45b=3.56E18第3章 Java程序设计基础 表:Java简单数据类型数据数据类型型关关键字字所占字所占字节取取值范范围长整型long8-263263-1整型int4-231231-1短整型short2-3276832767(-215215-1)字节型byte1-128127字符型char2065535布尔型boolean1位true 或 false单精度浮点型float4-3.4E+383.4E+38双精度浮点型double8-1.798E+3081.798E+3083.3变量和常量第3章 Java程序设计基础 类型标识符可以是任意的基本数据类型或复杂数据类型
18、。变量名必须符合标识符的规定,并习惯采用小写字母。如果变量名由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写。取名时最好符合“见名知意”的原则。例如:intage;如果声明中包含“=常量”部分,系统将此常量的值赋予变量,作为变量的初始值。可以同时声明同一数据类型的多个变量,各变量之间用逗号分隔。第3章 Java程序设计基础 【例】常量变量定义的综合举例/例3-1代码Test.javapublicclassTestpublicstaticvoidmain(Stringargs)finaldoubleC_INCH=1.414;/定义double型常量C_INCH,值1.414int
19、x,y;/定义x,y两个整型变量floatz=1.234f;/指定变量z为float型,且赋初值为1.234doublew=1.234;/指定变量w为double型,且赋初值为1.234booleanflag=true;/指定变量flag为boolean型,且赋初值为truecharc;/定义字符型变量cStringstr;/定义字符串变量strStringstr1=Hi;/指定变量str1为String型,且赋初值为”Hi”3.3变量和常量第3章 Java程序设计基础 /以下几条语句中使用了赋值运算符”=”,语句的作用是将右侧的值赋给/左侧的变量c=A;/给字符型变量c赋值Astr=bye;
20、/给字符串变量str赋值byex=12;/给整型变量x赋值为12y=300;/给整型变量y赋值为300System.out.println(C_INCH=+C_INCH);/向屏幕输出“C_INCH=1.414”System.out.println(z=+z);System.out.println(w=+w);System.out.println(flag=+flag);System.out.println(str1=+str1);System.out.println(c=+c);System.out.println(str=+str);System.out.println(x=+x);Sys
21、tem.out.println(y=+y);3.3变量和常量第3章 Java程序设计基础 3.4运算符和表达式 表达式是由操作数和运算符按一定的语法形式组成的。 一个常量或一个变量名是最简单的表达式; 表达式的值还可以作为其他运算的操作数,以形成更复杂的表达式。 例如:inti=5,j=10,k;k=(24+3*i)*j;第3章 Java程序设计基础 3.4运算符和表达式运算符n对数据进行加工和处理称为运算,表示各种运算的符号称为运算符,参与运算的数据称为操作数。n根据操作数的个数,可以将运算符分为单目、双目和多目运算符。单目运算符只对1个操作数运算,双目运算符对2个操作数运算。n根据操作数和
22、运算结果,运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符。第3章 Java程序设计基础 3.4.1 算术运算符及表达式算术运算表达式由操作数和算术运算符组成。运算符运算符表达式表达式名称及功能名称及功能a+b加-a-b减*a*b乘/a/b除%a%b取模(求余)表:二元算术运算符例:3+2;floata=7.8,y=2.2;a-y;3.4运算符和表达式第3章 Java程序设计基础 算术运算算例例如:23+5/结果是286*5/结果是3027/3/结果是945/4/结果是119%3/结果是09%4/结果是1第3章 Java程序设计基础 一元算术运算符共有四种,如表所示。表:一元算术运算符
23、运算符运算符名称名称表达式表达式功能功能+一元加+a取正值-一元减-a取负值+增量+a,a+操作数a自身加1-减量-a,a-操作数a自身减1例:inti=3,j;j=i+;/结果,j等于3,变量i赋值给j后加1inti=3,j;j=+i;/结果,j等于4,变量i加1后在赋值给j3.4运算符和表达式第3章 Java程序设计基础 3.4.2逻辑运算符及表达式逻辑运算符:非(!)、逻辑与(&)、逻辑或(|)。逻辑运算是对布尔类型操作数进行的与、或、非、异或等运算,运算结果仍然是布尔类型值。表: 布尔值的逻辑运算表aba & ba | b! afalsefalsefalsefalsetruefalse
24、truefalsetruetruetruefalsefalsetruefalsetruetruetruetruefalse3.4运算符和表达式第3章 Java程序设计基础 逻辑运算算例例如:!true/结果是falsetrue&false/结果是falsetrue|false/结果是true给定一个变量值,然后逻辑运算可以用于判断该值是否满足组合条件,例如(age20)&(age、=、count3count3&countab如果ab成立,结果为true;否则,结果为false=a=b如果ab成立,结果为true;否则,结果为falseab如果ab成立,结果为true;否则,结果为false=a
25、10.4/结果是true45!=45/结果是false76/结果是falsetrue!=false/结果是trueTa/结果是trueu、。表3-7 位运算符运算符运算符表达式表达式功能功能a对a按位取反&a & ba和b按位与|a | ba和b按位或a ba和b按位异或a b对a按位右移b位aa b对a按位右移b位,右移时a的高位补0表:位运算符3.4运算符和表达式第3章 Java程序设计基础 位运算符位运算是对整数类型的操作数按二进制的位进行运算,所运算结果仍然是整数类型值。位运算符有:(位反)、&(位与)、|(位或)、(位异或)、(右移位)。左移一位后最右位补0,移几位补几个0;右移一位
26、,移多少位就丢弃多少位并补零abaa&ba|b ab001000011011100011110110位运算真值表第3章 Java程序设计基础 位运算算例例如:x=132,y=204;计算x和xy的值(1)将整数转换为二进制数。x=10000100,y=11001100(2)对x按位进行取反操作。10000100=01111011(3)对x,y按位进行异或操作100001001100110001001000(4)所得结果:x=123,xy=72。第3章 Java程序设计基础 【例】位运算测试程序。/例3-2代码BitTest.javapublicclassBitTestpublicstaticv
27、oidmain(Stringargs)inta=-100,b=57;System.out.println(a=+a+b=+b);System.out.println(a2=+(a2);/输出a3=+(a3);/输出a3的结果System.out.println(a&b=+(a&b);/输出a&b的结果System.out.println(a|b=+(a|b);/输出a|b的结果System.out.println(a=+a);/输出a的结果System.out.println(ab=+(ab);/输出ab的结果3.4运算符和表达式第3章 Java程序设计基础 3.4.5其他运算符及其表达式1、
28、赋值运算符赋值运算符分为基本赋值运算符(=)和扩展赋值运算符(+=、=、*=、/=等)两种。赋值运算符的左边是一个变量,右边是一个表达式。赋值运算用于给变量赋值,形式如下:变量名=表达式;赋值运算的次序是从右向左的,即先计算表达式的值,再将表达式的值赋予变量。3.4运算符和表达式第3章 Java程序设计基础 赋值运算符算例例如:inti=3,j;j=i+2;/结果,j的值是5i=2*j;/结果,i的值是10j=j+4;/结果,j的值是9i-=6;/相当于i=i-6,i的值是4j/=3;/相当于j=j/3,j的值是3第3章 Java程序设计基础 3.4.5其他运算符及其表达式2、条件运算符条件运
29、算符?:是三元运算符。 表达式表达式1 ? 表达式表达式2 : 表达式表达式3如果“表达式1”是关系表达式,计算结果是布尔型。如果“表达式1”值是true,“表达式2”的值是最终整个表达式的值;如果“表达式1”的值是false,“表达式3”的值是最终整个表达式的值。intrusult,sum=1rusult=sum=0?1:93.4运算符和表达式第3章 Java程序设计基础 例:声明整形变量min,x=4,y=20然后用条件表达式表示取x和y中的较小值赋值给minintmin,x=4,y=20min=(xy)?x:y;/结果:(xy)的值是false,取x的值4作为min的值条件运算符算例第3
30、章 Java程序设计基础 3.4.5其他运算符及其表达式3、圆括号运算符“()”用于改变表达式中运算符的运算次序。先进行括号内的运算,再进行括号外的运算;在有多层括号的情况下,优先进行最内层括号内的运算,再依次从内向外逐层运算。3.4运算符和表达式第3章 Java程序设计基础 4、强制类型转换运算符“(类型)”自动类型转换的一般原则是位数少的数据类型可以转换为位数多的数据类型各类型所占用的位数从短到长依次为:各类型所占用的位数从短到长依次为:byte short char int long float double3.4运算符和表达式不同类型数据的转换规则不同类型数据的转换规则操作数操作数1类
31、型型操作数操作数2类型型转换后的后的类型型byte或或shortintintbyte或或short或或intlonglongbyte或或short或或int或或longfloatfloatbyte或或short或或int或或long或或 floatdoubledoublecharintint第3章 Java程序设计基础 4、强制类型转换运算符“(类型)”自动类型转换例如:inti=3;floatj=(float)i;/结果j=3.0强制类型转换:当位数多的数据类型向位数少的数据类型转换时,需要使用()进行强制转换。doublei=50.56;bytej=(byte)i;/结果j=50一般地,高
32、级类型(即位数较多的数据类型)转为低级类型(即位数较一般地,高级类型(即位数较多的数据类型)转为低级类型(即位数较少的数据类型)时,截断高位内容,因此会导致精度下降少的数据类型)时,截断高位内容,因此会导致精度下降3.4运算符和表达式第3章 Java程序设计基础 5其他运算符:分量运算符“”下标运算符“”实例运算符“instanceof”内存分配运算符“new”方法调用运算符“()”。表达式的运算按照运算符的优先顺序从高到低进行,同级运算符按其结合方向进行。3.4运算符和表达式第3章 Java程序设计基础 运算符运算符描述描述优先先级结合方向合方向. ( )分量,下标,括号1从左至右+ - +
33、 - ! 一元运算符2从右至左* / %乘,除,取余3从左至右+ -加,减4从左至右 位运算5从左至右 =关系运算6从左至右= !=关系运算7从左至右&按位与8从左至右按位异或9从左至右|按位或10从左至右&逻辑与11从左至右|逻辑或12从左至右? :条件运算13从右至左= *= /= %= += = = = &= = |=赋值运算及扩展赋值运算14从右至左表:运算符的功能及其优先级3.4运算符和表达式第3章 Java程序设计基础 3.5基本流程控制语句Java基本流程控制语句:顺序语句选择语句循环语句第3章 Java程序设计基础 语句用来向计算机系统发出操作指令。程序由一系列语句组成。表达式
34、语句表达式;如:total=math+phys+chem;空语句;复合语句用“”将多条语句括起来,在语法上作为1条语句使用。如:z=x+y;t=z/10;方法调用语句方法名(参数);如:System.out.println(“JavaLanguage”);控制语句完成一定的控制功能,包括顺序结构语句,选择语句、循环语句和转移语句。语句及程序结构第3章 Java程序设计基础 3.5.1顺序语句在程序中,如果语句仅仅为一个赋值表达式或其它表达式,则该语句称为顺序语句。 顺序结构是最简单的一种程序结构,程序顺序结构是最简单的一种程序结构,程序按照语句的书写次序顺序执行按照语句的书写次序顺序执行3.5
35、基本流程控制语句顺序结构流程图语句1语句2语句n第3章 Java程序设计基础 例:华氏温度转换为摄氏温度摄氏温度c和华氏温度f之间的关系为:c=5(f-32)/9定义摄氏温度c和华氏温度fc=5(f-32)/9输出c,f第3章 Java程序设计基础 例:华氏温度转换为摄氏温度publicclassConversionpublicstaticvoidmain(Stringargs)floatf,c;f=70.0f;c=5*(f-32)/9;System.out.println(“华氏温度=+f);System.out.println(“摄氏温度=+c);第3章 Java程序设计基础 程序运行结果
36、如下:华氏温度=70.0摄氏温度=21.11111第3章 Java程序设计基础 3.5.2选择语句选择语句使得程序执行时可以跳过某些语句,而选择执行某些特定的语句。选择语句分为条件语句和多分支语句。if语句应用在“二选一”的条件下1.条件语句条件语句采用的格式如下:if (布尔表达式布尔表达式) 语句块语句块1; else 语句块语句块2; 其中其中else语句可以省略语句可以省略3.5基本流程控制语句第3章 Java程序设计基础 注意:(1)else语句块可以不写。(2)如果条件为真时,执行语句块1;如果条件为假时,则执行语句块2。(3)条件语句if-else可以嵌套成多分支语句。3.5基本
37、流程控制语句第3章 Java程序设计基础 if(布尔表达式)语句if(布尔表达式)语句1else语句2布尔表达式语句truefalse布尔表达式语句2falsetrue语句1if语句第3章 Java程序设计基础 【例3-3】编写一个条件语句程序。定义一个常量MAX_NUM等于50,如果输入的整数小于常量的值,则向屏幕输出该整数,否则输出该整数大于等于常量MAX_NUM的值。3.5基本流程控制语句第3章 Java程序设计基础 /导入所需要的类importjava.util.Scanner;importjava.io.*;publicclassCompareTestpublicstaticvoid
38、main(Stringargs)finalintMAX_NUM=50;/定义常量MAX_NUM=50Scanners=newScanner(System.in);System.out.println(请输入数值x:);intx=s.nextInt();/Scanner对象的方法nextInt()用于接收整型数据的输入/下面用if结构判断x的值是否小于MAX_NUMif(x=+MAX_NUM);3.5基本流程控制语句第3章 Java程序设计基础 任务:给定三个整数,判断是否能构成三角形的3个边长,能则输出三角形边长,否则输出“此三个边不能构成三角形”定义三个边长a,b,c并赋值输出三角形的周长a
39、+b+c判断任意两个边是否大于第三边输出“此三个边不能构成三角形”第3章 Java程序设计基础 publicclassTrianglepublicstaticvoidmain(Stringargs)inta=12,b=10,c=17;if(a+bc&c+ba&a+cb)System.out.println(三角形周长是+(a+b+c);elseSystem.out.println(此三个边不能构成三角形);第3章 Java程序设计基础 任务:使用任务:使用if语句根据月份返回该月语句根据月份返回该月份的天数份的天数第3章 Java程序设计基础 多路if语句中可以包含if语句,形成if语句的嵌套
40、。if(条件表达式1)语句1elseif(条件表达式2)语句2elseif(条件表达式n)语句nelse先判断条件表达式1的值,为true执行语句1,否则逐个其他判读布尔表达式,哪个条件表达式为true执行该条件表达式后面的语句3.5基本流程控制语句第3章 Java程序设计基础 任务:使用任务:使用else if语句根据月份返语句根据月份返回该月份的天数回该月份的天数第3章 Java程序设计基础 salary工资税率salary5000030%10000salary=5000015%3000salary=100005%0salary5000010000salary50000salary5000
41、0Salary*0.3Salary*0.3Salary*0.3第3章 Java程序设计基础 importjava.io.IOException;importjava.util.Scanner;publicclassTestpublicstaticvoidmain(Stringargs)Scanners=newScanner(System.in);System.out.println(“请输入工资:);floatsalary=s.nextFloat();if(salary=50000)System.out.println(你需要缴税+salary*0.3);elseif(salary10000&
42、salary3000&salary0&salary0sum=sum+nn-truefalse输出110之和第3章 Java程序设计基础 【例3-5】求整数110之和。publicclassNumAddpublicstaticvoidmain(Stringargs)intn=10;intsum=0;/定义变量sum,初值为0while(n0)/n0时,累加求和;否则结束循环sum+=n;/将整数数n的值加到sum中n-;/n的值减1成为下一个整数System.out.println(1+2+.+10=+sum);/输出累加和3.5基本流程控制语句第3章 Java程序设计基础 2do-while语
43、句do-while循环语句一般格式如下:do 循环体循环体 while (条件表达式条件表达式);3.5基本流程控制语句true循环体条件?falsedo-while语句流程图含义:先执行循环体,然后判断条件,在执行循环体,直到条件表达式为false,退出循环。第3章 Java程序设计基础 【任务】计算1+3+5+99定义整数n=1和累加sum=0判断n100sum=sum+nn=n+2truefalse输出1100奇数之和第3章 Java程序设计基础 例:计算1+3+5+99public class Sum1 public static void main(String args) int
44、n=1, sum=0; do sum=sum+n; n=n+2; while (n100); System.out.println(“1-100的奇数和=+sum); 第3章 Java程序设计基础 【例3-6】使用dowhile循环计算用户输入学生成绩总分平均分。importjava.util.Scanner;publicclassChengJipublicstaticvoidmain(Stringargs)intfenshu;/分数intrenshu;/班级人数intavg;/平均分intzongfen=0;/总分Stringbanji;inti=1;Scannerinput=newScan
45、ner(System.in);3.5基本流程控制语句第3章 Java程序设计基础 System.out.println(请输入班级号:);banji=input.next();/接受输入的班级号给banji变量System.out.println(人数:);renshu=input.nextInt();/接受输入的人数给renshu变量doSystem.out.println(请输入+i+人的分数:);fenshu=input.nextInt();/接受输入的分数给fenshu变量zongfen=zongfen+fenshu;/分数累加到zongfen变量中i+;while(i=renshu)
46、;avg=zongfen/renshu;/求平均分System.out.println(banji+班一共有+renshu+人t+共+zongfen+分t+平均分是:+avg);3.5基本流程控制语句第3章 Java程序设计基础 运行结果:第3章 Java程序设计基础 3for语句for语句一般格式如下:for (表达式表达式1; 表达式表达式2;表达式表达式3) 循环体循环体; 3.5基本流程控制语句true表达式1表达式2表达式3false循环体for语句流程图for语句的语义是语句的语义是表达式1:循环初值;表达式2:布尔表达式,判断循环是否继续循环;表达式3:修改循环变量值。先执行表达
47、式先执行表达式1,判断表达式,判断表达式2的值,当布尔表达式的值,当布尔表达式2为真时,执行循环体语为真时,执行循环体语句,执行表达式句,执行表达式3的迭代语句,然后再去判别布尔表达式的迭代语句,然后再去判别布尔表达式2的值。直到逻辑表的值。直到逻辑表达式的值为假时,循环结束达式的值为假时,循环结束第3章 Java程序设计基础 break语句语句break语句可用于三类语句中语句可用于三类语句中一类是一类是switch语句中语句中一类是一类是for、while及及do等循环语句中等循环语句中在在switch语句及循环语句中语句及循环语句中break的语义是的语义是跳过本块中余下的所有语句,转到
48、块尾,跳过本块中余下的所有语句,转到块尾,执行其后的语句执行其后的语句第3章 Java程序设计基础 break语句语句循环实际执行了循环实际执行了5次次for (int i = 0; i 100; i+) if ( i = 5 )break;System.out.println(i= + i);第3章 Java程序设计基础 continue语句语句在循环语句中,在循环语句中,continue可以立即结束当可以立即结束当次循环而执行下一次循环,当然执行前先次循环而执行下一次循环,当然执行前先判断循环条件是否满足判断循环条件是否满足for (int i = 0; i 100; i+) if ( i
49、 = 5 )continue;System.out.println(i= + i);循环实际执行了循环实际执行了99次,次,i=5没有输出没有输出第3章 Java程序设计基础 【例子】 判断某一个数是否是质数。判断成为质数的条件:质数是指除1及自身外,不能被其它数整除的自然数。算法实现:对于一个自然数k,需要使用2k-1之间的每个整数i进行测试,如果k能被i整除,则k不是质数;如果k不能被所有的整数i整除,则k是质数。要求:先画出该程序的流程图,然后编写相应代码。3.5基本流程控制语句第3章 Java程序设计基础 【任务】判断某一个数是否是质数输入数字k,flag=true判断i=k-1int
50、i=2truefalseif(k%i=0)flag=false;break;i+输出该数是质数判断flag=true输出该数不是质数truefalse第3章 Java程序设计基础 /判断某一个数是否是质数publicclassPrimepublicstaticvoidmain(Stringargs)inti,k;booleanflag=true;Scanners=newScanner(System.in);System.out.println(请输入一个数字:);k=s.nextInt();for(i=2;i=k-1;i+)if(k%i=0)flag=false;break;if(flag)S
51、ystem.out.println(k+是质数);elseSystem.out.println(k+不是质数);第3章 Java程序设计基础 【例3-7】输出50以内的所有质数。 publicclassZhiShupublicstaticvoidmain(Stringargs)inti,j,k;booleanflag;for(i=2;i=50;i+)flag=true;k=i;for(j=2;j=k-1;j+)if(i%j=0)flag=false;break;if(flag)System.out.print(i+);3.5基本流程控制语句第3章 Java程序设计基础 3.6综合运用实例问题描
52、述:问题描述:模拟抽奖游戏,实现简单的抽奖功能。运行程序后从键盘输入数字(0-9),如果输入值为5、2或0时,则可显示获得奖品的相关信息;如果输入其它数字则显示“没有奖品”的提示信息。最后通过按任意非数字键加回车可跳出循环,退出程序。问题实现:问题实现:在该实例中定义了类Lottery,在主方法中通过while和switch语句来不断读取并判断输入的字符值,进而完成模拟抽奖的工作。第3章 Java程序设计基础 importjava.util.Scanner;publicclassLotterypublicstaticvoidmain(Stringargs)intin;System.out.pr
53、intln(请输入数字键(09)抽取大奖!);System.out.println(温馨提示:输入非数字键后可退出该程序);Scannerinput=newScanner(System.in);while(input.hasNextInt()/如果输入值为整数in=input.nextInt();switch(in)3.6综合运用实例第3章 Java程序设计基础 case0:System.out.println(恭喜您获得大奖,汽车一辆!);break;case2:System.out.println(恭喜恭喜,您获得到笔记本电脑一台!);break;case5:System.out.prin
54、tln(来了您不用走路回去,送您自行车赛车一辆!);break;default:System.out.println(谢谢您的参与,您没有奖品!下次再来吧。);System.out.println(感谢您参与抽奖活动!);3.6综合运用实例第3章 Java程序设计基础 执行结果:请输入数字键(09)抽取大奖!(温馨提示:输入非数字键后可退出该程序)0恭喜您获得大奖,汽车一辆!1谢谢您的参与,您没有奖品!下次再来吧。2恭喜恭喜,您获得到笔记本电脑一台!5来了您不用走路回去,送您自行车赛车一辆!9谢谢您的参与,您没有奖品!下次再来吧。a感谢您参与抽奖活动!3.6综合运用实例第3章 Java程序设计
55、基础 3.6综合运用实例题目1:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?第3章 Java程序设计基础 3.6综合运用实例publicclassTest publicstaticvoidmain(Stringargs)doubleh=100,s=100;for(inti=1;i=9;i+)s=s+h;h=h/2;System.out.println(经过路程:+s);System.out.println(反弹高度:+h/2);运行结果:经过路程:299.609375反弹高度:0.09765625第3章 Java程序设
56、计基础 3.6综合运用实例题目2:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方5的三次方3的三次方。第3章 Java程序设计基础 3.6综合运用实例publicclasslianxi03publicstaticvoidmain(Stringargs)intb1,b2,b3;for(intm=101;m20)System.out.println(恭喜你!顺利过关!);break;elseif(s=0)System.out.println(非常遗憾!您失败了!);break;while(s0);第3章 Java程
57、序设计基础 3.6综合运用实例题目4:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。第3章 Java程序设计基础 3.6综合运用实例publicclassTestpublicstaticvoidmain(Stringargs)Scanners=newScanner(System.in);System.out.print(请键入一个正整数:);intn=s.nextInt();intk=2;System.out.print(n+=);while(k=n)if(k=n)System.out.println(n);break;elseif(n%k=0)System.out.print(k+*);n=n/k;elsek+;