3.10.3 循环语句
- while
格式:
statement
}
请用:当...就一直...造句
例句:当一天的时间在9点到6点的时候,就一直在工作
代码:
public static void main(String[] args){
int hour = 0;
while(hour<24){
if(hour>=9&&hour<=18){
System.out.println(hour+"点在工作");
}else{
System.out.println(hour+"点在休息");
}
hour++;
}
}
}
- do...while
格式:
statement
}while(condition);
请用:去...当...就继续
造句:去写作业,当你没写完的时候,就继续,代码:
public static void main(String[] args){
int homework = 100;
int finished = 0;
Random random = new Random();
System.out.println("总共有"+homework+"份作业待完成");
do{
int finish = random.nextInt(50);
finished+=finish;
System.out.println("写完了"+finish+"份作业");
System.out.println("累计写完了"+finished+"份作业");
}while(finished<homework);
System.out.println("完成所有作业!(*^▽^*)");
}
}
有了while,为啥要用do...while...?因为一个小时能完成多少作业,这种情况是不平均的,不去尝试,根本不会知道实际完成的情况。类似这种,至少尝试一次,通过实际情况,确定是否退出的场景,我们使用 do...while...。
- for
格式:
statement
}
造句:从...开始,去...,满足...的情况,就继续
例句:从第一行代码开始,去写代码,满足没写满1000行的情况,就继续
public static void main(String[] args){
for(int i = 1; i <= 1000; i++){
System.out.println("写了第"+i+"行代码");
}
}
}
3.10.4 break
有些情况,我们找到了想要的数据,使用break,可以立即结束循环。例如抛骰子,抛出 1 结束,我们可以这样写:
public class Main {public static void main(String[] args){
Random r = new Random();
do{
int curr =r.nextInt(6)+1;
System.out.println("抛骰子结果为:"+curr);
if(curr == 1){
break;
}
}while (true);
}
}
3.10.5 continue
有时候循环中的某些情况不需要处理,例如打印1到一百之间不为3的倍数且尾数不为3的数:
public class Main {public static void main(String[] args){
for(int i = 1; i <= 100; i++){
if(i%3==0||i%10==3){
continue;
}
System.out.print(i+" ");
if(i%10==0)
System.out.println();
}
}
}
其他:补充知识
问:循环里可以做小数比较计算吗?会有什么隐患?
答:理论上可以做小数计算,但不能拿变更的小数值的等值作为循环结束条件。计算机计算小数的小数是有误差的,可能造成死循环风险。
系列内容:
《Java 核心技术 卷1》 笔记:第一章 Java程序设计概述
《Java 核心技术 卷1》 笔记:第二章 Java程序设计环境
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(1)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(2)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(3)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(4)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(5)
喜欢的话,点个赞吧~!平时做题,以及笔记内容将更新到公众号。
关注公众号,互相学习:钰娘娘知识汇总