循环结构
for循环语句
for循环语句格式
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
格式说明:
- 初始化语句:这里可以是一条或者多条语句,这些语句用来完成初始化操作(int i=1)
- 条件判断语句:这里使用一个结果为boolean类型的表达式,这个表达式能决定是否执行循环体语句(i<=1000)
- 循环体语句:这里可以是任意语句,这些语句可能被多次执行
- 条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果;
执行流程图:
注释:为什么要给出这个图呢?从图上我们可以看出。先执行初始化语句和条件判断语句,打印循环体,然后在执行条件控制语句,也是就打印出一个语句i的值才会自增。这是初学者很容易迷惑的一点。特此说明!
for循环案例
- 需求:在控制台输出1-5的数据
- 分析:
①反复进行输出的动作,使用循环结构
②从1开始到5结束,设置初始化从1开始
③从1开始到五结束,设置判断条件为没有到5的时候继续执行,执行到5的时候程序结束。
④从1到5,每次增加1,设置条件控制每次+1
⑤将反复执行的语句写在循环结构的内部,打印对应数据
package com.sdh;
public class ForDemo01 {
public static void main(String[] args) {
for (int i=1;i<=5;i++){
System.out.println(i);
}
}
}
案例二:求和思想
- 需求:求1-5之间的数据和,并把求和的结果在控制台输出
- 分析:
①需要一个变量sum存求和的结果,整数求和用int类型。
②for循环语句判断,求1-5的和初始化语句i=1;
条件判断语句,i<=5,一到五的和,条件控制语句i++(也可写成i+=1)
③注:i++,是只在变量自增一的情况下使用
package com.sdh;
public class ForDemo02 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum = sum + i;
}
System.out.println(sum);
}
}
案例三:求偶数和
- 需求:求1-100之间的偶数和,并把求和结果在控制台输出
- 分析:
①对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同。
②对1-100的偶数求和,要求对求和操作添加限制条件
③限制条件是偶数才参与运算,因此条件应该是判断是否是偶数
④当循环执行完毕时,将结果打印出来。
package com.sdh;
public class ForDemo03 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println("1-100的求和结果为:"+sum);
}
}
案例四:水仙花数
- 需求:在控制台输出所有的“水仙花数”,水仙花数是一个三位数且个位,十位,百位的数字立方和等于原数
- 分析:获取个位,十位,百位的数。设数位x则个位为x%10;十位为(x/10)%10,百位为(x/100)%10
- 实现步骤:
①获取一个三位数,通过循环实现
②获取每一个三位数的个位,十位,百位
③判断该三位数是否为水仙花数
④输出水仙花数字
package com.sdh;
public class ForeDemo04 {
public static void main(String[] args) {
// 获取一个三位数,通过循环实现
for (int i = 100; i < 1000; i++) {
// 个位用变量g表示
int g = i % 10;
// 十位用变量s表示
int s = (i / 10) % 10;
// 百位用变量b表示
int b = (i / 100) % 10;
if (i == (g * g * g + s * s * s + b * b * b)) {
System.out.println(i);
}
}
}
}
153
370
371
407
案例五:统计思想
需求:统计“水仙花数一共有多少个,并在控制台输出个数。
实现步骤:
①定义变量count,初始化值为0
②在判定水仙花数的过程中,使count的值每次加以
③输出统计变量count的值
package com.sdh;
public class ForeDemo04 {
public static void main(String[] args) {
int count = 0;
// 获取一个三位数,通过循环实现
for (int i = 100; i < 1000; i++) {
// 个位用变量g表示
int g = i % 10;
// 十位用变量s表示
int s = (i / 10) % 10;
// 百位用变量b表示
int b = (i / 100) % 10;
if (i == (g * g * g + s * s * s + b * b * b)) {
System.out.println(i);
count++;
}
}
// 水仙花数的个数
System.out.println(count);
}
}