




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章 程序流程设计和控制3.1 算法、伪代码和流程图1、算法:解决问题的步骤或者过程 包括:1)需要采取的各个行动 2)这些行动的顺序2、伪代码:并非真正的Java语句,而是类似Java语句,用来描述问题的求解过程 “洗澡算法”可以用伪代码来描述:1)烧水2)宽衣3)如浴4)关水3、流程图:用图解的方式描述解决某个问题所需要的步骤和顺序计算16的流程图3.2 If语句 1)if ( 条件 )语句块;意义:如果条件成立,那么就执行语句块否则不执行。举例:int choice = 1;int num = 0;if ( choice = 1 ) num = 1;System.out.print( num );结果:num = 1下面给出一个完整的程序:运行结果为:choice= 1 num= 1if 的语法格式还可以是:if ( 条件 )语句块;参见教材P54 例程If2.java 2)if ( 条件 )语句块1;else 语句块2;意义:如果条件成立,那么就执行语句块1否则执行语句块2。举例:int choice = 0/1/2; /分析当choice的值分别为0、1、2,程序的结果是什么?int num = 0;if ( choice = 1 ) num = 1;else num = 2;System.out.print( num );一个完整的Java程序:运行结果:choice= 1 num= 1if 的语法格式还可以是:if ( 条件 ) 语句块1; else 语句块2;举例:int num = 0;if ( choice = 1 ) num = 1; choice = 0;else num = 2; choice = 3;注意:当choice = 1时,if ( choice = 1 ) num = 1;num = 2;System.out.print( num );与if ( choice = 1 ) num = 1;elsenum = 2; System.out.print( num );区别。3)if的嵌套格式 if ( 条件1 ) 语句块1; else if ( 条件2 ) 语句块2; else if ( 条件3 ) 语句块3; .一个完整的Java程序: 从中我们可以看出: if ( 条件1 ) 语句块1; else if ( 条件2 ) 语句块2;等价于 if ( 条件1 ) 语句块1; else if ( 条件2 ) 语句块2;除了在else部分嵌套一个if语句外,我们也可以在if 部分嵌套一个if语句,如:3.3 switch语句语法格式:switch ( 表达式 ) case 值1: 语句块1; case 值2: 语句块2; . case 值n: 语句块n; default: 语句块n+1;举例:int num = 0;switch ( choice ) case 1: num = 1; break; case 2: num = 2; break; default: num = 0;一个完整的Java程序:运行结果:choice = 1 choice = 1 num = 1当去掉第一个break语句后:运行结果:choice = 1 choice = 2 choice = 1 num = 23.4 循环语句1、while 语句1)语法格式: while ( 条件 ) 循环体; 意义:当条件成立,即条件为真时,反复执行循环体,当条件为假时,不再执行循环体,即退出循环体 举例: int k =3 ; System.out.println( “program starts!” ); while ( k 0 ) System.out.println( k ); k = k 1; System.out.println( “program ends!” ); 运行结果为: program starts! 3 2 1 program ends!把书翻到P62,参考另外一个程序一个完整的Java程序:注意:System.out.println( num+ ) 等价于 System.out.println( num ); num+; 2)死循环如果循环不能够结束,即循环的条件总是为true,那么这就是死循环。例子:int num = 1;while ( num 6 ) System.out.println( num ) ;System.out.println( “program ends” );相当于while( true ) System.out.println( num ) ; 3)注意事项条件表达式的值只能是布尔类型的值,不能是其他类型的值。例如:while ( 1 ) ,在某些语言里,认为非零值即为真值,而0为假值,但在Java里是非法的。2、do while 语句1)语法格式 do 循环体; while ( 条件 ) P65图3。52)举例 int k = 0; do System.out.println( k ); k +;while ( k 3 )System.out.println( “program ends” ); 3) 比较while 和 do while 当第一次条件成立时,两种循环没有区别;若一开始,即第一次条件不成立,那么while的循环体一次都不执行,而do while的循环体却要执行一次。 int k = 6; while ( k 6 ) System.out.println( “running” ); 对比 int k = 6;do System.out.println( “running” );while ( k 6 ) 4)一个完整的Java程序 3、for 语句 1)语法格式 for ( 开始条件;结束条件;改变循环条件 ) 循环体; 2)举例 for ( k = 0 ; k 3 ; k+ ) System.out.println( k ); 一个完整的Java程序: 3)注意事项 for( k = 0 ; k 3 ; k+ ) 等价于 k = 0; for( ; k 3 ; k+ ) for( ; ; ) 相当于死循环 4)与while 比较 int k = 0; while ( k 3 ) System.out.println( k ); k+;等价于for ( int k = 0 ; k 3 ; k+ ) System.out.println( k );当不知道确切循环的次数的时候,采用while循环,否则可以采用for循环,循环次数为:结束条件 开始条件 或者结束条件 开始条件 14、循环的综合实例 运行结果:3.5 多重循环 1、什么是多重循环?一个循环里嵌套里另一个循环,而且可以继续嵌套。例如:1)while ( ) for( ; ; ) 2)for( ; ; ) do while()3)for( ; ; ) for( ; ; ) 4)for( ; ; ) for( ; ; ) while( ) while( ) 2、举例 1)编写一个程序,输出一个有1 组成的三角形 1 11 111 1111 11111 111111 1111111 2)把上面的问题变化一下,输出的三角形右对齐 3)螺旋输出一个nn矩阵的元素1 8 72 9 63 4 5输出的结果为:1 2 3 4 5 6 7 8 93.6 break、continue和标号语句在循环中的作用 1、break语句:会使循环提前终止,并退出循环 for ( k = 1 ; k 5 ; k+ ) if ( k = 3 ) break; System.out.println( k ); System.out.println( “program ends” ); 输出结果为:1 2 program ends 2、continue语句:会使本次循环提前结束,直接进入下一次循环 for ( k = 1 ; k 5 ; k+ ) if ( k = 3 ) continue; System.out.println( k ); System.out.println( “program ends” ); 输出结果为: 1 2 4 5 program ends 3、具体程序例子 1) 运行结果为: num1= 1 num1= 2num1= 3num1= 4-num1= 1num1= 2-num3= 1num3= 2num3= 4 2)若break、continue语句在多重循环的内层循环里,那么他们的作用范围只是在他们所属的循环中。参考教材第72页例程BreakLoop2.java 3)在程序中的某个地方加上标号,break使程序能够退出标号所在的循环 for( num = 1 ; num 3 ; num + ) for( count = 1 ; count 3 ; count+ ) if ( count = 2 ) break; System.out.println( “num2=” + num + “ count2=” + count ); System.out.println(“num2=” + num ); 运行结果为: num2=1 count2=1 num2=1 num2=2 count2=1num2=2 loop2: for( num = 1 ; num 3 ; num + ) for( count = 1 ; count 3 ; count+ ) if ( count = 2 ) break loop2; System.out.println( “num2=” + num + “ count2=” + count ); System.out.println(“num2=” + num ); 运行结果为:num2=1 count2=1 这时,break不仅仅是退出内层循环,而是要退到loop2的位置,即连外层循环也被推出。 把程序改为: for( num = 1 ; num 3 ; num + ) loop2: for( count = 1 ; count 3 ; count+ ) if ( count = 2 ) break loop2; System.out.println( “num2=” + num + “ count2=” + count ); System.out.println(“num2=” + num ); 运行结果为: num2=1 count2=1 num2=1 num2=2 count2=1num2=2 与不加loop2标号的结果是一样的。把程序再改为: for( num = 1 ; num 3 ; num + ) for( count = 1 ; count 3 ; count+ ) if ( count = 2 ) break loop2; System.out.println( “num2=” + num + “ count2=” + count ); System.out.println(“num2=” + num ); loop2: 编译时报错: 4)在程序中的某个地方加上标号,continue使程序能够直接跳到外层循环头部 for( num = 1 ; num 3 ; num + ) for( count = 1 ; count 3 ; count+ ) if ( count = 2 ) continue; System.out.println( “num2=” + num + “ count2=” + count ); System.out.println(“num2=” + num ); 运行结果为: num2=1 count2=1 num2=1 num2=2 count2=1num2=2 loop2: for( nu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全断面掘进机合作协议书
- 2025年湖南省永州市单招职业倾向性测试题库1套
- 机器学习原理与应用电子教案 5.3朴素贝叶斯
- 2025年湖南环境生物职业技术学院单招职业适应性测试题库带答案
- 2025年河南林业职业学院单招职业适应性测试题库附答案
- 2025至2030年中国模块式除尘器数据监测研究报告
- 吉林省松原市部分学校2024-2025学年高一上学期12月月考地理试题(解析版)
- 2025至2030年中国显像管移载装置数据监测研究报告
- 2025至2030年中国无线吊秤数据监测研究报告
- 第二章 第一节 钠及其化合物-碳酸钠和碳酸氢钠(教学设计) 2023-2024学年高一上学期化学人教版(2019)必修第一册
- 《2024版CSCO胰腺癌诊疗指南》更新要点
- 儿童福利机构安全管理规范
- 人工智能技术应用专业调研报告
- 鞋类制造过程的节能与减排
- 第1课 おじぎ 课件高中日语人教版第一册-1
- 08SG510-1 轻型屋面平行弦屋架(圆钢管、方钢管)
- 事前绩效评估具体工作实施方案
- 六年级下册语文第一单元测试卷 部编版(含答案)
- 2024年湖南高速铁路职业技术学院单招职业适应性测试题库新版
- 《研学旅行市场营销》课件-研学旅行市场营销之社群营销
- 医美机构客户满意度调查表
评论
0/150
提交评论