前言
我是一名来自延边大学人工智能专业的热爱街舞的大四学生,目前在学习Java,我会根据我的学习路线给大家分享学习经验,这章我们学习Java中的控制结构,流程控制结构分为三种,分别是顺序结构,分支结构和循环结构,这章来说循环结构
循环结构
循环结构可以控制一段代码重复执行。循环结构有for循环、while循环、do-while循环。
for循环
用具体案例代码来理解for循环的执行流程
for(int i = 0; i < 3; i++) {
System.out.println("Hello World");
}
for(初始化语句;条件判断语句;条件控制语句){
循环体语句
}
格式说明:
- 初始化语句:这里可以是一条或者多条语句,这些语句用来完成初始化操作(int i=0)
- 条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体语句(i<=3)
- 循环体语句:这里可以是任意语句,这些语句可能被多次执行(System.out.println(“Hello World”)😉
- 条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果(i++)
可以用下列的练习案例进行巩固强化
练习1(输出)
需求:在控制台输出1-5的数据
分析:
① 反复进行输出的动作,使用循环结构
② 从1开始到5结束,设置初始化从1开始
③ 从1开始到5结束,设置判断条件为没有到5的时候继续执行,执行到超过5程序结束
④ 从1到5,每次增加1,设置条件控制每次+1
⑤ 将反复进行的事情写入循环结构内部,打印对应数据
可以去IDEA中测试如下代码
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
System.out.println("--------------");
for (int i = 1; i <= 5; i += 1) {
System.out.println(i);
}
System.out.println("--------------");
for (int i = 1; i <= 5; i += 2) {
System.out.println(i);
}
System.out.println("--------------");
//自增运算符:++
//它跟在变量的后面表示变量的值+1
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
System.out.println("--------------");
for (int i = 1; i <= 5; i++,i++) {
System.out.println(i);
}
System.out.println("--------------");
//我要获取数据5-1该怎么办呢?
for (int i=5; i>=1; i-=1) {
System.out.println(i);
}
System.out.println("--------------");
for (int i=5; i>=1; i--) {
System.out.println(i);
}
}
练习2(求和)
需求:求1-5之间的数据和,并把求和结果在控制台输出
分析:
① 求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
② 从1开始到5结束的数据,使用循环结构完成
③ 将反复进行的事情写入循环结构内部
此处反复进行的事情是将数据 i 加到用于保存最终求和的变量 sum 中
④ 当循环执行完毕时,将最终数据打印出来
public static void main(String[] args) {
//定义一个求和变量,用于保存求和的结果
int sum = 0;
//我们通过for循环实现获取数据1-5
for (int i=1; i<=5; i++) {
//i,1,2,3,4,5
// sum = sum + i;
sum += i;
/*
第一次求和:sum = sum + i = 0 + 1 = 1
第二次求和:sum = sum + i = 1 + 2 = 3
第三次求和:sum = sum + i = 3 + 3 = 6
第四次求和:sum = sum + i = 6 + 4 = 10
第五次求和:sum = sum + i = 10 + 5 = 15
*/
}
//输出结果
System.out.println("1-5的求和结果是:" + sum);
}
练习3(求偶数和)
需求:求1-100之间的偶数和,并把求和结果在控制台输出
分析:
① 对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同
② 对1-100的偶数求和,需要对求和操作添加限制条件
③ 限制条件是偶数才参与运算,因此条件应该是判断是否是偶数
④ 当循环执行完毕时,将最终数据打印出来
public static void main(String[] args) {
//1:求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
int sum = 0;
//2:对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同
for (int i=1; i<=100; i++) {
//3:对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数
if(i % 2 == 0) {
sum += i;
}
}
//4:当循环执行完毕时,将最终数据打印出来
System.out.println("1-100之间的偶数和是:" + sum);
}
练习4(求水仙花数)
需求:在控制台输出所有的“水仙花数”
水仙花数:
① 水仙花数是一个三位数
比如:111 222 333 370 371 520 999
② 水仙花数的个位、十位、百位的数字立方和等于原数
分析:
① 获取三位数,通过循环实现
② 获取每一个三位数的个位,十位,百位
③ 判断该三位数是否是水仙花数
④ 输出水仙花数
public static void main(String[] args) {
//1:获取三位数,通过循环实现
// for (int i=100; i<=999; i++) {
//
// }
for (int i = 100; i < 1000; i++) {
//2:获取每一个三位数的个位,十位,百位
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
//3:判断该三位数是否是水仙花数
if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) == i) {
//4:输出水仙花数
System.out.println(i);
}
}
}
练习5(求水仙花数且统计个数)
需求:统计“水仙花数”一共有多少个,并在控制台输出个数
分析:
① 定义统计变量count,初始化值为0
② 在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1
③ 输出统计变量的值
public static void main(String[] args) {
//定义一个统计变量,用于数据的统计,初始化值为0
int count = 0;
for (int i = 100; i < 1000; i++) {
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) == i) {
// System.out.println(i);
//1,2,3,...
count++;
}
}
//输出水仙花的个数
System.out.println("水仙花数一共有:" + count + "个");
}
练习6(求回文数)
需求:输出所有五位数的回文数
看到这个需求,我们首先要解决的问题就是,什么样的数据是“回文数”?
那什么是“回文数”呢?一个数,无论是从左往右读,还是从右往左读,读起来都相同的数,叫做“回文数”
举例:
10101,12321:是回文数
12345:不是回文数
规律:
个位 = 万位
十位 = 千位
和百位无关
分析:
① 获取五位数,通过循环实现
② 获取每一个五位数的个位,十位,千位,万位
③ 判断该五位数是否是回文数
④ 输出回文数
blic class ForTest06 {
public static void main(String[] args) {
//1:获取五位数,通过循环实现
for (int i = 10000; i < 100000; i++) {
//2:获取每一个五位数的个位,十位,千位,万位
int ge = i % 10;
int shi = i / 10 % 10;
int qian = i / 1000 % 10;
int wan = i / 10000 % 10;
//3:判断该五位数是否是回文数
if ((ge == wan) && (shi == qian)) {
//4:输出回文数
System.out.println(i);
}
}
//练习:统计五位数的回文数个数,并在控制台输出个数
}

2万+

被折叠的 条评论
为什么被折叠?



