1、Java程序设计视频教程本讲主题循环语句与转向语句主讲教师:黄洪2循环语句与转向语句循环语句与转向语句3循环体循环体布尔表达式布尔表达式4例:用while循环求1+2+10的和 public class WhileDemo public static void main(String args)int i,sum;sum=0;/sum存放结果。初始化为0 i=1;/i用于控制循环的次数。初始化为1 while(i=10)sum+=i;i+;System.out.println(sum=+sum);5循环体循环体布尔表达式布尔表达式truefalse6for循环语句 语法形式如下:for(赋值语
2、句表;条件表达式;运算表达式表)循环体执行流程如右图执行运算表达式表执行运算表达式表条件表达式条件表达式循环体循环体ForFor语句的下一句语句的下一句执行赋值语句表执行赋值语句表7例:用for循环求1+2+10的和public class ForDemo public static void main(String args)int sum=0;/sum存放结果,初始化为0 for(int i=1;i=10;i+)sum+=i;System.out.println(sum=+sum);8使用for循环的注意事项o 赋值表达式表可以是用逗号分隔的多个赋值表达式,也可以为空。并且在该表达式中可以
3、定义局部变量。如:for(int i=0,j=10;ij;i+)上述语句定义了两个局部变量i和j,这两个变量的作用范围是该循环语句。o 但赋值表达式表不能既使用已定义的变量,又定义新变量。如下述语句是错误的。for(i=0,int j=10;ij;i+)9使用for循环的注意事项o 条件表达式可以为空。为空时等同于true。o 运算表达式表可以是用逗号分隔的多个运算(赋值)表达式,也可以为空。o 循环体可以为空。循环体为空时可以取消”,直接加一个”;”。10例:用for循环求1+2+10和的第二种写法public class ForDemo2 public static void main(S
4、tring args)int i,sum;for(i=1,sum=0;i10)break;/强行退出循环 System.out.println(sum=+sum);111213几种循环结构的选用o 如果循环的次数不确定,则一般选用while循环。while循环循环体的执行次数可以是零次或多次。o 如果循环的次数不确定,但至少要执行一次,可以选用do循环。o 如果循环次数是确定的,则选用for循环,for循环通过三个表达式可以方便的控制循环执行规定的次数。141516不带标号的break语句while(条件)语句块1break;语句块2后续语句 在循环语句中执行到break语句时,将终止brea
5、k语句所在的循环,转而去执行循环语句后的第一条语句。为了使得循环得以执行,通常break语句会被放在一个if语句中,使得当某种条件满足时,才结束循环。在多重循环或switch嵌套的场合,一个不带标号的break语句只能跳出其所在的内层循环或switch;分析以下程序的执行流程1.public class TestSwitch2.public static void main(String args)3.int x=1,y=2,i=0,j=0;4.switch(x)5.case 1:switch(y)6.case 1:i+;break;7.case 2:j+;break;8.default:i+
6、;j+;9.10.case 2:i+;j+;break;11.default:i+;j+;12.13.System.out.println(“i=+i);14.System.out.println(“j=+j);15.16.1718带标号的break语句标号:While(条件1)while(条件2)语句块1 break 标号;语句块2 后续语句1后续语句2 标号是用于标示一个程序块的。可以将标号理解为程序块的名称。其形式为在程序块前的一个合法标识符后跟一个冒号(:)。如下所示:标号:程序块 在循环语句中执行到带标号的break语句时,将终止标号所指的语句块,转而去执行该语句块后的第一条语句。典
7、型用法是直接结束多重循环。为了使得循环得以执行,通常break语句会被放在一个if语句中,当某种条件满足时,才结束循环。带标号的break语句实例1.public class Break22.3.public static void main(String args)4.5.int sum=0;6.coloop:7.while(sum=100)8.9.for(int count=0;count6)13.break coloop;14.15.16.System.out.println(sum=+sum);17.18.192021不带标号的continue语句while(条件)语句块1contin
8、ue;语句块2后续语句 在循环语句中执行到continue语句时,将跳过循环体中continue语句后面的语句,重新判断循环的条件。为了使得continue后面的语句得以执行,通常continue语句会被放在一个if语句中,当某种条件满足时,才跳过后面的语句。在多重循环的场合,一个不带标号的continue语句只能跳过其所在的内层循环中位于其后面的语句序列;2223带标号的continue语句标号:While(条件1)while(条件2)语句块1 continue 标号;语句块2 后续语句1后续语句2 在多重循环语句中执行到带标号的continue语句时,将直接跳到标号所指的外层循环,重新判断
9、循环条件。为了使得continue后面的语句得以执行,通常continue语句会被放在一个if语句中,当某种条件满足时,才不执行其后面的语句。24return语句o Return语句的作用是终止当前方法的执行,返回到这个方法的调用者。o 所有非void方法必须包含一个return语句作为方法最后执行的语句,该语句停止方法的执行,并返回指定类型的值。o 语法如下:return expression;expression的类型应与方法的返回类型一致。25现在,请完成前面的任务o 编写一个程序,将1到100之间的偶数求和并输出。26上机练习上机练习o 编程实现下面的程序:1、从1100以内能被2整数但不能被3整除的整数,要求每行按10个数的形式对其输出。2、编写一个程序,显示99乘法表3、求出e=1+1/1!+1/2!+1/3!+1/n!+的近似值,要求误差小于0.0001提示:n越大误差越小,使用double型。