循环结构:for循环
1.for循环
控制一段代码反复执行很多次。
for循环的格式如下:
for (初始化语句;循环条件;迭代语句){
循环体语句(重复执行的代码);
}
下面我们通过案例:输出3次HelloWorld感受一下。
//需求:输出3次HelloWorld
for(int i = 0; i < 3; i++){
System.out.println("HelloWorld");
}
通过对代码的运行,我们也成功得到了结果。
2.for循环案例1:求和
需求:求1-5之间的数据和,并把求和结果在控制台输出。
分析:
- 定义for循环使其能够依次访问到:1、2、3、4、5。
for(int i = 1; i <= 5; i++){
}
- 在循环外定义一个整数变量sum用来累加这些数据。
int sum = 0;
for(int i = 1; i <= 5; i++){
sum += i;
}
- 循环结束后,输出求和变量既是结果。
代码:
public static void main(String[] args) {
// 需求:计算1-5的和
// 2.在循环外定义一个整数变量sum用来累加这些数据。
int sum = 0;
// 1.定义for循环使其能够依次访问到:1、2、3、4、5。
for (int i = 1; i <= 5; i++) {
// i= 1 2 3 4 5
// 3.把循环的数据累加给sum变量
/**
sum += i 等价于 sum = sum + i
i == 1 sum = 0 + 1
i == 2 sum = 0 + 1 + 2
i == 3 sum = 0 + 1 + 2 + 3
i == 4 sum = 0 + 1 + 2 + 3 + 4
i == 5 sum = 0 + 1 + 2 + 3 + 4 + 5
*/
sum += i;
}
System.out.println("1-5的和是:" + sum);
}
结果:
3.for循环案例2:求奇数和
需求:求1-10之间的奇数和,并把求和结果在控制台输出。
方式一:
-
定义for循环使其能够依次访问到:1、2、3 … 10。
-
在for循环中,通过if筛选出奇数。
for(int i = 1; i <= 10; i++){
if(i % 2 == 1){
// i = 1 3 5 7...
}
}
- 在循环外定义一个整数变量sum用来累加这些数据。
代码:
public static void main(String[] args) {
// 需求:求1-10的奇数和
// 3.定义一个求和的变量,累加奇数和
int sum = 0;
// 1.定义一个循环找到1 2 3...10
for (int i = 1; i <= 10; i++){
// i = 1 2 3 4 5 6 7 8 9 10
// 2.筛选出奇数
if(i % 2 == 1){
// i = 1 3 5 7 9
sum += i;
}
}
// 4.输出求和变量即可
System.out.println("1-10的奇数和是:" + sum);
}
结果:
方式二:
- 定义for循环使其能够依次访问到:1、3、5 、7、9。
for(int i = 1; i <= 10; i+=2){
}
- 在循环外定义一个整数变量sum用来累加这些数据。
代码:
System.out.println("--------------------");
// 2.定义一个求和的变量,累加奇数和
int sum1 = 0;
// 1.定义一个循环找到1 3 5 7 9
for (int i = 1; i <= 10; i+=2){
// i = 1 3 5 7 9
sum1 += i;
}
// 3.输出求和变量即可
System.out.println("1-10的奇数和是:" + sum1);
结果:
4.for循环案例2:水仙花数
需求:在控制台输出所有的“水仙花数”,水仙花数满足如下两个要求:
- 水仙花数是一个三位数。
- 水仙花数的个位、十位、百位的数字立方和等于原数。
分析:
- 定义一个for循环从100-999 。
- 每次访问到数据后,提取该数据的:个位、十位、百位数字。
- 使用if判断:个位、十位、百位的数字立方和是否等于原数,等于则输出数据。
代码:
public static void main(String[] args) {
// 需求:找出水仙花数并输出
// 1. 定义一个for循环找出全部三位数
for (int i = 100; i <= 999; i++){
// 2.判断这三个数是否满足要求
// 个位
int ge = i % 10;
// 十位
int shi = i / 10 % 10;
// 百位
int bai = i / 100;
if ((ge*ge*ge + shi*shi*shi + bai*bai*bai) == i ){
System.out.print(i + "\t");
}
}
}
结果:
如何知道水仙花数的个数呢?
- 在循环外定义一个变量count用于记录水仙花数。
- 每输出水仙花数是,让count++。