
第三章java流程控制语句.ppt
70页第三章 JAVA流程控制语句,主讲教师:毛科亮,本章内容,语句概述Java语言的语句分类结构化程序设计的三种基本流程 分支语句If语句If-else语句Switch语句 循环语句while循环语句do-while语句for语句 转移语句break语句continue语句return语句 常用的程序设计方法 枚举法、地推法、递归法简单图形的输出 格式化的输入与输出 从键盘输入数据 格式化的输出,语句的概念,java程序的执行遵循一定的流程,流程是程序执行的顺序 流程控制语句是控制程序中各语句执行顺序的语句,是程序中非常关键和基本的部分流程控制语句可以把单个的语句组合成有意义的、能够完成一定功能的小逻辑块一、Java语句概述,语句与结构化程序设计在算法语言中,数据类型描述数据的性质,表达式描述对数据的运算,语句描述对数据的操作程序由一系列语句组成Java语言虽然是一种面向对象的计算机语言,但在一个局部,例如方法内、块语句内仍然需要面向过程的程序设计和方法作为面向过程程序设计精华的结构化程序设计思想,仍然是面向对象程序设计方法的基石一、Java语句概述,结构化程序设计的三种基本流程:尽管现实世界的问题是复杂的、千变万化的,但与之相对应的计算机算法流程, 只有三种基本结构---------顺序结构、选择结构、循环结构。
每种结构都是单入 口、单出口;每一部分都会被执行到;没有死循环A,B,P,A,B,P,循环体,,,,真,假,假,真,Java语言提供支持结构化程序设计的所有语言一、Java语句概述,Java语言提供结构化语句实现程序的流程控制表达式语句顺序结构 空语句 复合语句条件语句选择语句 语句 开关 语句 switchwhile循环语句 do-whileforbreak转移语句 continuereturn,,,,,,一、Java语句概述,一、Java语句概述,在java语言中,语句以分号“;”为结束标志特殊的是,块语由其他语句组成,其本身不用分号结束内嵌有块语句并以块语句结尾的语句,也不需要用分号结尾ava语句按性质可分为:说明性语句、操作性语句Java语句按功能可分为:空语句、标号语句、声明语句、表达式语句、分支语句、循 环语句、断言语句、跳转语句、同步语句、异常语句、块语句等一、Java语句概述,一、Java语句概述,空语句: 仅包含一个分号。
例如:for(int i=1;i<=1000;i++) ;标号语句: 标号:语句标号的作用域是他所在的块语句,在作用 域内不能够有同名的其他标号或局部变量;标号语句的作用在break、continue两条跳转语句上体现断言语句: 用于校验类的方法是否被正确调用语法为:assert 表达式1;assert 表达式1:表达式2;其中,表达式1必须是boolean表达式,表达式2可以是任何类型一、Java语句概述,一、Java语句概述,(Java程序通过控制语句来执行程序流,完成一定的任务程序流是由若干个语句组成的,语句可以是单一的一条语句,如c=a+b,也可以是用大括号{}括起来的一个复合语句) 语句块可以嵌套,嵌套层数无限制 定义类时类体必须采用语句块形式 定义方法时方法体必须采用语句块的形式,语句块,一、Java语句概述,一、Java语句概述,表达式语句,表达式是由运算符、操作数和函数等组成的算式其显著特点是有返回值,即表达式的值表达式返回值的数据类型取决于表达式的操作数和运算类型表达式语句可分为以下几类:表达式语句:赋值表达式语句、方法调用语句、对象创建 语句、变量声明语句、自增语句。
一、Java语句概述,一、Java语句概述,分支语句实现程序流程控制的功能 ,即根据一定的条件有选择地执行或跳过特定的语句 Java分支语句分类:★ if语句★ if-else 语句★ if-else if语句★ switch 语句,分支语句,二、Java分支语句,一、Java语句概述,格式: if (表达式) 语句 功能:首先计算表达式,若值为真,则执行语句,否则结束执行if语句,执行if语句的后续语句思考:int a=2;if (a>3)System .out .println (“a>3“);System .out .print (“ok!“); 上面的执行结果是什么?,IF语句,二、Java分支语句,一、Java语句概述,class Max{ public double getMax(double a,double b){ double max; max=a; if(max
IF-else语句,二、Java分支语句,一、Java语句概述,import java.util.*;class Leap{ public boolean isLeap(int year){ if((year%4==0) }}},闰年问题,if (条件1){//程序代码;} else if ( 条件2){//程序代码;} else if ( 条件3){//程序代码;} 注意:只要任何一个条件成立.程序就不会对下一个条件进行判断和再执行了IF-else if 语句,二、Java分支语句,public class Ex3_3{ public static void main(String[] args){ (new Letter()).judgeLetter(); } } class Letter{ public void judgeLetter(){char ch;ch=(char)(java.lang.Math.random()*128);if(ch='a'}},检查用random()方法 产生的一个字符,判 断是否为英文大写字 母、小写字母、数字 或是其他符号,并输 出相应信息。
IF嵌套语句 if (条件1){if ( 条件2){//程序代码;} else {//程序代码;} else {if ( 条件3){//程序代码;} else {//程序代码;} } .,IF嵌套语句,二、Java分支语句,switch( 表达式 ) { case 值1: 语句1; [break;] case 值2: 语句2; [break;] case 值3: 语句3; [break;] case 值N: 语句N; [break;] [default:语句N+1] },多分支语句 switch,二、Java分支语句,二、Java分支语句,,功能:首先计算表达式的值,然后在 switch语句中寻找与该表达式的值相 匹配的case值◇ 表达式的返回值类型必须是这几种类型一int , byte , char , short ◇ case子句中的值必须是常量,而且所有case子句中的值应是不同的 ◇ default子句是可选的 ◇ break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行(在一些特殊情况下,多个不同的case值要执行一组相同的操作这时可以不用break,不写break时执行自该case开始到下一次找到break语句为止),多分支语句 switch,二、Java分支语句,二、Java分支语句,import java.util.*; public class Ex3_4{ public static void main(String[] args){ (new Grade()).toGrade(); }} class Grade{ public void toGrade(){int score,m;Scanner reader=new Scanner(System.in);System.out.println(“输入成绩:“);score=reader.nextInt();if(score100){System.out.println(“data error!“);}else{m=score/10;switch(m){case 9:case 10: System.out.println(“The grade is A.“);break;case 8: System.out.println(“The grade is B.“);break;case 7: System.out.println(“The grade is C.“);break;case 6: System.out.println(“The grade is D.“);break;default: System.out.println(“The grade is E.“);break;}}}},输入百分成绩, 输出成绩等级。
循环语句的作用是反复执行一段代码,直到满足终止循环的条件为止Java语言中提供的循环语句有: ◇ while语句 ◇ do-while语句 ◇ for语句,循环语句,三、Java循环语句,三、Java循环语句,While ( 条件 ){//循环体}注意: (1)此语句是先判断条件,再确定是否执行语句或程序块 (2)条件为true时,执行循环体的语句或程序块反之,不执行循环体 (3)在循环体中要有改变条件的语句,否则会成为死循环while语句,三、Java循环语句,do{//循环体;} while (条件) ;注意: (1)此语句是先执行一次循环体,再判断条件 (2)条件为true时,再次执行 循环体的语句或程序块 (3)在循环体中要有改变条件的语句,否则会成为死循环 (4)do-while循环语句即是至少都要执行一次的do-while语句,三、Java循环语句,三、Java循环语句,for (设定初始值 ; 条件限定 ; 修改控制变量){//程序代码;}不限定的循环(死循环) for ( ; ; ){//程序代码;}多个变量进行定义for ( int i=0,j=100 ; i public class Ex3_5 {public static void main(String args[]){int num = 0, i = 1;while (i <= 100) {if (i % 3 == 0) {System.out.print(i + “ “);num++;}if (num == 5) {break;}i++;}} },//输出101~200内的质数,public class Ex3_6{public static void main(String args[]) {for (int i=101; i<200; i+=2) {boolean f = true;for (int j = 2; j < i; j++) {if (i % j == 0) {f = false; break;}}if (!f) {continue;}System.out.print(“ “ + i);}} },。
