在日常生活中,我们会重复做某些事情,如将相同的试卷打印三份就需要用到循环结构。在Java中,有三种常用循环结构:while循环、do-while循环、for循环,下面将为读者一一介绍:
1、while循环结构
在日常生活中
while循环的结构为:
while(循环条件){
循环体;
}
示例:
// 输出50遍:好好学习,天天向上
int count = 0;
while(count<50){
System.out.println("好好学习,天天向上");
count++;
}
while循环是先判断再操作,当需要先操作再判断时while循环就不在适合,便有了do-while循环。
2、do-while循环结构
do-while循环的结构为:
do{
循环体;
}while(循环条件);
示例:
// 输入得分判断是否及格,不及格时退出
Scanner sc = new Scanner(System.in);
do{
System.out.println("请输入成绩:");
int score = sc.nextInt();
}while(score>60)
System.out.println("很遗憾你未及格!");
3、for循环结构
for循环的结构为:
for(参数初始化;循环条件判断;更新循环变量){
循环体;
}
示例:
// 输出100遍:好好学习,天天向上
for(int i=1;i<=100;i++){
System.out.println("好好学习,天天向上");
}
for循环的执行顺序有些特殊,首先执行的是参数初始化,然后进行循环条件的判断,接着进入循环体,最后才进行循环变量更新。
循环的选择
循环次数确定的情况,通常选用for循环
循环次数不确定的情况,通常选用while或do-while循环
例题
①猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?
// 剩余一个桃子
int num = 1;
// 天数
int day = 10;
// 注意第10天没吃
while (day>1) {
// 算出前一天的桃子数
num = (num+1)*2;
day--;
}
System.out.println("共" + num + "个桃子");
②有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?
// 分析可知兔子的规律为数列:1,1,2,3,5,8,13,21
// 可以看出从第三个月开始,每个月兔子数等于前两个月之和
//第一个月兔子对数
int x = 1;
// 第二个月兔子对数
int y = 1;
// 用来表示第三个月兔子数
int z = 0;
for(int i = 3;i<=10;i++){
// 第三个月数量等于前两个月之和
z = x+y;
x=y;
y=z;
}
System.out.println(z);
③本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是。
// 本金
double money = 10000;
// 注意是五年后,故5可以取到
for(int i =1;i<=5;i++){
money = money * 1.003;
}
System.out.println("5年后本金为:"+money);
④一张纸的厚度大约是0.08mm,对折多少次之后能达到或超过珠穆朗玛峰的高度(8848.13米)
// 纸的厚度,单位转换成米
double height = 0.00008;
// 对折次数
int count=0;
while(height<8848.13){
// 对折一次高度为原来两倍
height*=2;
count++;
}
System.out.println("对折"+count+"后为"+height+"m");