目录
循环
循环语句的四个组成部分
- 初始化部分(init_statement)
- 循环条件部分(test_exp)
- 循环体部分(body_statement)
- 迭代部分(alter_statement)
for 循环结构
for (初始化表达式①; 布尔值测试表达式②⑤⑦; 更改表达式){
语句或语句块③⑥ ;
}
关注循环顺序(1-2-3-4-2-3-4。。。。。。)
思想:体会循环过程
for循环实例
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.取出个十百位
while 循环
包含循环四要素
[初始化语句]
while( 布尔值测试表达式){
语句或语句块;
[更改语句;]
}
可与for循环替换,但区别在于初始条件的位置,导致作用范围不同
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次
4)始终把握:外循环控制行,内循环控制列
嵌套循环练习
1)
2)
3)
注释内的另一种写法也可以
4)图形拆分成上下两部分,可由上两例组合
5)challenging,将空格替换成-便于观察,寻找各行相应符号
出现次数的规律,如下图,再利用外层控制行,内层控制列
6)九九乘法表,思路同上,外行内列
找100以内的质数(循环)
关注算法的优化过程,查看程序运行时间方法和设置flag的好处
记得flag在每次循环后要置false
法一(最笨)
法二
法一方法弊端,如判断8,一旦出现2能整除,则不需继续整除
3,4了,加上break,解决该问题
法三(best)
确定中间线,开根号(注意判断条件有等于号)
一处marginal优化:flag判断方式(由逻辑判断改为取非)
法四
不使用flag,改用标签,节省判断flag的过程