Java面向对象程序设计杨晓燕第4章Java流程控制结构.ppt
第4章 Java 流程控制结构,Java程序设计,2,本章主要内容,简单语句和复合语句选择结构循环结构,3,语句和程序流程控制结构,编写程序是为了解决问题,程序员不仅要完全了解问题,规划解决问题的步骤,而且必须要清楚地知道程序设计语言所支持的程序流程控制结构。语句(statements)是程序的基本组成单位,在Java语言中,有简单语句和复合语句两类语句。一条简单语句总是以分号(;)结尾,它表示一个要执行的功能(如short s=258;)。语句可以是单一的简单语句,也可以是用一对大括号()括起来的由若干条简单语句组成的复合语句(一般也称为语句块blocks)。复合语句可以出现在简单语句能出现的任何位置,若要在允许使用单条语句的位置执行多条语句,则必须用大括号将这些语句括起来,构成一条复合语句。下面章节提到的语句,既可以是简单语句,也可以是复合语句。提示:仅仅由一个分号组成的简单语句叫做空语句。空语句表示不需要执行任何操作,通常用作程序流程控制中的过渡语句。,4,选择结构(selection structure),5,例4.1 判断2011是否为奇数,是奇数则输出。public class IsOddpublic static void main(String args)int y=2011;if(y%2!=0)System.out.println(y+是个奇数!);System.out.println(if语句出口);,6,例4.2 判断并输出2010的奇偶性。public class IsOdd1public static void main(String args)int y=2010;if(y%2=0)System.out.println(y+是个偶数!);elseSystem.out.println(y+是个奇数!);System.out.println(ifelse语句出口);,7,多选择结构switch语句,switch(表达式)case表达式常量1:语句1;case表达式常量2:语句2;.case表达式常量n:语句n;default:语句n+1;其中,每个 case常量称为标号,代表一个case分支的入口。switch多支选择语句在执行时,首先计算switch表达式的值,该值必须是整型或字符型的量,同时应与后面相应的各个case的“表达式常量”的值的类型一致。,8,例4.6 switch语句的执行流程演示:输入一个06之间的某一个有效数字,判断是星期几并输出。先看下面的程序是否有问题。1 import java.io.*;2 class WeekDayTest 3 public static void main(String args)throws IOException 4 int w;5(请输入一个有效星期数(06),);6 w=System.in.read()-48;7 switch(w)8 case 0:System.out.println(w+表示是星期日);9 case 1:System.out.println(w+表示是星期一);10case 2:System.out.println(w+表示是星期二);11case 3:System.out.println(w+表示是星期三);12case 4:System.out.println(w+表示是星期四);13case 5:System.out.println(w+表示是星期五);14case 6:System.out.println(w+表示是星期六);15default:System.out.println(w+是无效数!);16 17 System.out.println(switch结构出口!);18 19,9,循环结构(loop structure),循环结构是当循环条件为真时,不断地重复执行某些动作,即反复执行同一程序块,直到循环条件为假,结束循环,转向循环结构的出口。在现实世界的许多问题中需要用到循环控制,如累加求和、迭代求根、求某月工资总和等。,10,While循环,11,例4.9 while循环结构迭代算法。class LoopTest1public static void main(String args)(0100个整数之和:);int i=1,sum=0;/循环结构外对循环变量i、累加变量sum初始化while(i=100)/循环条件 sum+=i;/循环体内迭代运算 i+=1;/循环体内修改循环变量(sum=+sum+,i=+i);/循环结束处理,12,dowhile语句,13,class LoopTest2public static void main(String args)(0100之间的整数之和:);int i=1,sum=0;dosum+=i;i+=1;while(i=100);(sum=+sum+,i=+i);,14,for语句,for(初值表达式1;循环条件表达式2;循环变量修改表达式3),15,16,例4.12 用for语句改写例4.11程序。class LoopTest3public static void main(String args)(0100之间的整数之和:n);int i,sum=0;for(i=1;i=100;i+)sum+=i;(sum=+sum+,i=+i);,17,