第二章结构化程序设计.ppt

上传人:本田雅阁 文档编号:2260422 上传时间:2019-03-12 格式:PPT 页数:69 大小:248.01KB
返回 下载 相关 举报
第二章结构化程序设计.ppt_第1页
第1页 / 共69页
第二章结构化程序设计.ppt_第2页
第2页 / 共69页
第二章结构化程序设计.ppt_第3页
第3页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第二章结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《第二章结构化程序设计.ppt(69页珍藏版)》请在三一文库上搜索。

1、第二章 结构化程序设计,2.1 标识符和关键字 2.2 数据类型、变量和常量 2.3 运算符 2.4 控制结构 2.5 结构化程序设计,2.1 标识符和关键字,标识符:是对变量、类、方法、标号和其它各种用户自定义对象的命名。 在Java中,标识符必须以字母、下划线()或美元符()开头,后面跟0个或多个由字母、下划线、美元符或数字组成的字符数字串。 标识符是大小写敏感的 字母是Unicode字符集 没有最大长度限制 除去关键字、false、true和null,问题: 是/不是 标识符?,myVariable 9pins MYVARIABLE i a+c testing1-2-3,_myvaria

2、ble java¨ My Variable $myvariable _9pins Its 猫,Java关键字,具有特殊含义的字符序列 例如: public、 static和class 具有特殊用途,不能作为变量名、方法名和类名,Java关键字(50个),2.2 数据类型、变量和常量,一、数据类型概述 二、变量和常量 三、简单数据类型 四、简单数据类型的相互转换 五、简单数据类型的类包装,一、 数据类型概述,简单数据类型(基本数据类型) 布尔型 字符型 整型 浮点型 复合数据类型(引用数据类型) 数组 类或接口或枚举,二、变量和常量-变量,变量表示JAVA程序中的基本存储单元,总是具有某种

3、数据类型:基本数据类型或引用数据类型 变量总是具有与其数据类型相对应的值 每个变量均具有: 名字、类型、一定大小的存储单元以及值 变量名对应内存的位置 定义格式: variableModifier typeSpecifier varName=value,varname=value;,Java变量必须属于某种类型,变量值也必须与变量类型相匹配 例如: int studentNumber; / 声明单个变量 double velocity, distance; / 声明多个变量 studentNumber=30; / 给变量赋以整数30 int studentNumber=30;/ 声明变量,并赋

4、初值,二、变量和常量-常量,常量是在程序运行期间不能被修改的量。分为: 普通常量(常数) 标识符常量(常值变量): final;如MAX_VALUE final double PI=3.14159;,Java常量,Java常量包括基本数据类型常量、字符串(String)常量和null 布尔(boolean)常量只有两个:true 和 false c, u0061, u0051 和 u005a 是char常量. 34是int常量 1.5, 45.6, 76.4E8和-32.0是double常量 34L是long常量. 1.5F, 45.6f, 76.4E8F和-32.0F是float常量 “He

5、llo World!”是String常量 null是引用数据类型的常量,三、简单数据类型整型,整型都为带符号数,三、简单数据类型浮点型(实型),三、简单数据类型字符型,char定义 数据位宽度为16bit,使用Unicode字符集 字符常量:A 利用转义字符来表示一些控制字符: 换行(n);回车(r); 1到4位十六进制所表示的字符(uxxxx),常用的转义字符,b (退格) f (换页) n (换行) r (回车) t (水平制表符(到下一个tab位置) (单引号) “ (双引号) (反斜杠),三、简单数据类型字符型,public class Welcome3 public static v

6、oid main( String args ) System.out.println( “WelcomentonJavan Programming!“ ); ,三、简单数据类型布尔型,boolean定义 数据位宽度为1 变量的值:只能是真(true)和假(false) 进行流程控制,四、简单数据类型的相互转换,自动(隐式)类型转换和强制(显式)类型转换 整型、实型、字符型 byte-short-int-long-float-double char-int-long-float-double,自动类型转换,强制类型转换,五、对简单数据类型的类包装,java.lang包中有类: Boolean C

7、haracter Byte Double,Float Integer Long Short,习题,Java的简单数据类型有哪些?与其他语言的最大不同在哪里? 请指出下面数值的类型。 178;8864L;37.266;37.266D;87.363F;26.77e3;c;true 仔细阅读下面的程序,找出并改正其中的错误.,习题,Class Arithmetic public static void main (String args) final int x = 17,y = 5; boolean mycom = 1; System.out.println(“x=”+x); System.out

8、.println(“y= ” +y) if(mycom) System.out.println(“x+y= ” + (x+y); ,习题,请说明下面程序中所有变量的作用域. Class Spot public int size; public Spot (int intSize) int pointx,pointy; size = intSize; pointx=intSize; ,2.3 运算符,运算符指明对操作数所进行的运算。 表达式是变量、常量、运算符、方法调用的序列,它执行指定的计算并返回某个确定的值。,2.3 运算符,算术运算符(+,- -, +,- , *,/,% ) 关系运算符(

9、, =, =,= =,!=) 逻辑运算符(!, ) 位运算符( , , , , , ,) 赋值运算符(基本:= ;复合: +=,-=,*=,/=,%=,),2.3 运算符,条件运算符(?: )条件?表达式1:表达式2 其它运算符(分量运算符.,字符串合并+,(类型)表达式,下标运算符等) 表达式有算术表达式、关系表达式、逻辑表达式、位运算表达式、赋值表达式、条件表达式等。,1. 算术运算符,算术运算符包括:+, -, *, /, +, -, % 没有指数运算 Math.pow(2.0, 3.0); / 2.03.0 整数除法:截去余数 7 / 5 结果为 1 取模:返回余数 7 % 5 结果为

10、 2,2. 关系运算符,六个关系运算符: 、=、= 和 != 例如: 1 2; / false 3.5 != 1; / true 51.5 = 23.0; / true 540 = 654; / true 24 = 3*8; / true boolean test1=(10 10); / test1= false;,注意事项,、=只能用来比较两个数值类型数据(numbers含characters)的大小 不能用于Strings、booleans、arrays或其他类型,3.布尔逻辑运算符,六个布尔逻辑运算符: & (逻辑与AND) | (逻辑或OR) (逻辑异或XOR ) ! (逻辑非NOT)

11、 单目运算符, 即只有一个操作数 & (条件与AND) | (条件或OR),&和|,如果从第一个操作数可以推断出表达式结果,就不再计算第二个操作数 例如: if (x = 2) ,逻辑运算(&和| ),两个操作数均会被运算 (即不采用短路规则) 用不用短路规则,副作用不同 例如, (birthday = true) | (+age = 65),4. 位运算符,位运算符包括:&、|、和 带符号右移 不带符号右移 移位操作是:先将整数写成二进制形式,然后按位操作,最后产生一个新的数 注意: 只用于整数,5. 赋值类运算符,赋值类运算符包括:=、+=、-=、*=、/=、,6. 条件运算符,条件运算符

12、“? :”的表达式形式为“op1 ? op2 : op3” op1:布尔表达式 例如: int k= ( (i=0) ? 1 : -1);,7. 其他运算符,其他运算符包括:(类型)、.、 、( )、instanceof和new 例如: int a=51; char c=(char)a;,算符优先,不同的运算符具有不同的优先顺序 可以用( )来改变优先顺序或使表达式更容易理解 例如: a + b + c / 3 (a + b + c ) / 3,public class ArithmaticsTest public static void main( String args ) int a=9

13、; int b=-a; int i=0; int j=i+; int k=+j; System.out.println(“a=”+a+ “ b=”+b+ “ i=”+i+ “ j=”+j+ “ k=”+k); ,举例1,例题2,/ Addition.java: An addition program public class Addition public static void main( String args ) int number1 = 10, number2 = 20; int sum; sum = number1 + number2; System.out.println(“su

14、m = ”+ sum); ,习题,说出运算符优先级。 ,%,?:,&,*,+,(),= 写出下列表达式的值。 (35) (6=5) (3!=3) (5!=10)&(3=2+1) (42+5) !(5=2+3)&!(5+2!=7-5) 3.编写一个Java应用程序,输入代表华氏温度的整数值,计算出相应的摄氏温度的小数。利用如下公式进行换算:C = 5(F 32)/9。,2.4 流程控制,分支结构 if语句 switch语句 循环结构 while语句 for语句 do while语句 转移结构 break语句 continue语句 return语句,1 分支结构-if语句,一般形式 if (exp

15、ression) statement; else statement; 多重嵌套形式 if (expression) statement; else if (expression) statement; else statement;,if语句,if语句的格式是: if (布尔表达式) 语句 或 if (布尔表达式) 一条或多条语句 例如 if ( grade = 60 ) System.out.println( “Passed“ ); / Here could be a statement block.,if-else语句,if-else语句的格式是: if (布尔表达式) 语句1或语句块1

16、 else 语句2或语句块2 例如: if (grade60) System.out.println(“Passed!“); else System.out.println(“Failed!“);,条件运算符 ( ? : ),( cond ? express1 : express2 ) 例 1 System.out.println(studentGrade = 60 ? “Passed“ : “Failed“); 例2 max = ( a b ? a : b ); if (a b) max = a; else max = b;,1 分支结构-if语句(举例:是否为闰年),import java

17、.io.*; public class LeapYear public static void main( String args ) throws IOException System.out.println(“Input year is:“); InputStreamReader ir=new InputStreamReader(System.in); BufferedReader in= new BufferedReader(ir); String s=in.readLine(); int year=Integer.parseInt(s);,1 分支结构-if语句(举例1:是否为闰年),

18、if(year%4=0 ,1 分支结构-if语句(举例2:实现符号函数),-1(x0),1 分支结构- switch语句,形式:switch (expression) /char,byte,short,int case constant1: statements; break; case constant2: statements; break; default: statements; break; ,报数游戏:A、B、C、D、E、F、G、H共八人站成一排,按图示方法从1开始报数,问谁先报到18678902? A B C D E F G H 1 2 3 4 5 6 7 8 15 14 13

19、12 11 10 9 16 17 18,1 分支结构- switch语句(举例2),2 循环结构-for语句,一般形式: for (initialization;condition;increment) statement; 执行过程:for (i=1;i=10;i+) System.out.println(i); 无限循环: for (;)statement; 无循环体: 循环初始化和增量可用逗号,2 循环结构-for语句,初始化部分临时说明局部循环变量 int j=3; for (int i=0,j=10;ij;i+,j-)System.out.println(j*j); ,2 循环结构-

20、 while语句,一般形式 while (condition) statement; 执行过程 循环初始化和增量,2 循环结构- do while语句,一般形式 do statement; while (condition); 执行过程 循环初始化和增量,2 循环结构 举例1,/ WhileCounter.java import java.awt.Graphics; import java.applet.Applet; public class WhileCounter extends Applet public void paint( Graphics g ) int counter = 1

21、; while ( counter = 10 ) g.drawLine( 10, 10, 250, counter * 10 ); +counter; ,2 循环结构 举例2,/ ForCounter.java import java.awt.Graphics; import java.applet.Applet; public class ForCounter extends Applet public void paint( Graphics g ) for ( int counter = 1; counter = 10; counter+ ) g.drawLine( 10, 10, 25

22、0, counter * 10 ); ,2 循环结构 举例3,/ DoWhileTest.java: import java.awt.Graphics; import java.applet.Applet; public class DoWhileTest extends Applet public void paint( Graphics g ) int counter = 1; do g.drawLine( 10, 10, 250, counter * 10 ); +counter; while ( counter = 10 ); ,3 转移结构,return语句:从方法中返回,并为方法置

23、一个返回值。 一般形式:return expression; break语句:从封闭的语句(for,while,switch)跳出。 一般形式:break label; continue语句:用于循环语句中。不是终止一个控制,而是跳过循环结束前的语句,回到循环的条件测试部分继续执行 。 一般形式: continue label; test:if(check(i)for(int j=0;ji)break; if(aij=null)break test; ,3 转移结构-举例1:打印九九乘法表,public class MultiList public static void main( Stri

24、ng args ) outer:for(int i=1;i=9;i+) inner:for(int j=1;j=9;j+) System.out.print(j+*”+i+ =”+j*i+ ”); if(i=j) System.out.print(“n”); continue outer; ,4 递归-求N!,public class FactorialTest static long Factorial(int n) if(n=1) return 1; else return n* Factorial(n-1); public static void main (String args) i

25、nt n=8; System.out.println(n+“!=”+ Factorial(n); ,4 递归斐波纳契数列,F0=0 F1=1 Fn=Fn-1+Fn-2,习题,输入一个整数n,求出它的所有因子。 编写程序从上到下打印下面的图形。 * * * * * * *,习题,在什么情况下,使用带标签的break语句而不使用不带标签的break 语句? 找出下面的代码段的错误并说明如何改正? x=1; while(x=10); x+; for(y=.1;y!=1.0;y+=.1) System.out.println(y);,习题,switch(n) case 1: System.out.pr

26、intln(“The number is 1”); case 2: System.out.println(“The number is 2”); break; case 3: System.out.println(“The number is 1 or 2”); break;,习题,下面的代码应打印110: n=1; while(n10) System.out.println(n+); if(i = 1) System.out.println(“Hello World”); ,2.5 结构化程序设计,结构化程序设计 = 数据 + 操作 + 流程控制 + 结构化程序设计方法,流程控制,顺序结构 Java中的最基本结构 选择结构 if、if/else 和 switch 循环结构 while、do/while 和 for,结构化程序设计方法,只采用单输入/单输出的控制结构,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1