循环语句的四个组成部分
2)循环条件部分(test_exp)
3)循环体部分(body_statement)
4)迭代部分(alter_statement)
循环语句分类
1)for 循环
for (初始化表达式①; 布尔值测试表达式②⑤⑦; 更改表达式){
语句或语句块③⑥ ;
}
关注循环顺序(1-2-3-4-2-3-4。。。。。。)
思想:体会循环过程
练习
0)
思想:关注 ==0 判断
1)编写程序FooBizBaz.java,从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”
思想:注意print()的使用,不换行,且采用if结构的第一种,因为if-else只执行条件分支的一个语句块。
2)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
思想:1.遍历 2.取出个十百位
2)while 循环(包含循环四要素)
[初始化语句]
while( 布尔值测试表达式){
语句或语句块;
[更改语句;]
}
可与for循环替换,但区别在于初始条件的位置,导致作用范围不同
3)do/while 循环
[初始化语句]
do{
语句或语句块;
[更改语句;]
}while(布尔值测试表达式);
do-while 语句至少执行一次循环体
综合练习
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。
考察无限循环,最简单无限循环格式:while(true) , for(;;)
要有break,确保循环终止,NO死循环
嵌套循环
1)将一个循环放在另一个循环体内,就形成了嵌套循环。
for ,while ,do…while均可以作为外层循环和内层循环。
2)实质上,嵌套循环就是把内层循环当成外层循环的循环体。
当只有内层循环的循环条件为false时,才会完全跳出内层循
环,才可结束外层的当次循环,开始下一次的循环
3)设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n=mn次
始终把握:外循环控制行,内循环控制列
1)
2)
3)注释内的另一种写法也可以
4)图形拆分成上下两部分,可由上两例组合
5)challenging,将空格替换成-便于观察,寻找各行相应符号
出现次数的规律,如下图,再利用外层控制行,内层控制列
6)九九乘法表,思路同上,外行内列
7)找100以内的质数
关注算法的优化过程,查看程序运行时间方法和设置flag的好处
记得flag在每次循环后要置false
法1(最笨):
法二:
法一方法弊端,如判断8,一旦出现2能整除,则不需继续整除
3,4了,加上break,解决该问题
法三(best):确定中间线,开根号(注意判断条件有等于号)
一处marginal优化:flag判断方式(由逻辑判断改为取非)
法四:
不使用flag,改用标签,节省判断flag的过程