判断和循环 - 循环语句 - for循环格式和练习
什么是循环?
- 重复地做某件事
- 具有明确的开始和停止标记
循环的分类:
for
循环while
循环do....while
循环
for
循环
格式:
for (初始化语句;条件判断语句;条件控制语句) {
循环语句体;
}
//例
for (int i = 1;i <= 10;i++) {
SyStem.out.println("HelloWorld");
}
执行流程:
- 执行初始化语句。
- 执行条件判断语句,看其结果是
true
还是false
,如果是false
,循环结束;如果是true
,执行循环体语句。 - 执行条件控制语句。
- 回到2继续执行条件判断语句。
练习
基础案例1:输出HelloWorld
需求:打印5次HelloWorld
代码实现
public class ForDemo1 {
public static void main(String[] args) {
//需求:打印5次HelloWorld
/*
for (初始化语句体;条件判断语句;条件控制语句) {
循环体;
}
*/
for (int i = 1; i <= 5; i++) {
System.out.println("HelloWorld");
}
}
}
基础案例2:输出数字
需求:打印1-5
代码实现
//需求1:打印1-5
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
基础案例3:倒着输出数字
需求:打印5-1
代码实现
//需求2:打印5-1
for (int j = 5; j >= 1; j--) {
System.out.println(j);
}
案例4:断线重连
在实际开发中,需要重复执行的代码,会选择循环实现。
比如:如下图。玩游戏时如果网络不好会经常断线重连。
那么断线重连这个业务逻辑就需要重复执行。
假设现在公司要求,断线重连的业务逻辑最多只写5次。
请用代码实现。
备注:断线重连的业务逻辑可以用输出语句替代。
代码实现
/*
在实际开发中,需要重复执行的代码,会选择循环实现。
比如:如下图。玩游戏时如果网络不好会经常断线重连。
那么断线重连这个业务逻辑就需要重复执行。
假设现在公司要求,断线重连的业务逻辑最多只写5次。
请用代码实现。
备注:断线重连的业务逻辑可以用输出语句替代。
*/
public class Test13 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("断线重连中" + '第' + i +"次执行");
}
}
}
案例5:求和
需求:在实际开发中,如果要获取一个范围中的每一个数据时,也会用到循环。
比如:求1-5之间的和。
代码实现
public class Test14 {
public static void main(String[] args) {
/*
需求:在实际开发中,如果要获取一个范围中的每一个数据时,也会用到循环。
比如:求1-5之间的和。
*/
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum = sum + i;//也可以用sum += i;
}
System.out.println(sum);//得到1-5的和
}
}
注:
- 不可以把
sum
定义在循环的里面,因为变量只在所属的大括号里有效。 - 如果我们把变量定义在循环的里面,那么当前变量只能在本次循环中有效,当本次循环结束后,变量就会从内存中消失,第二次循环开始时,又会重新定义一个新的变量。
结论:如果我们要写累加求和的变量。可以把变量定义在循环的外面。
案例6:求和
需求:在实际开发中,如果要获取一个范围中的每一个数据时,会用到循环。
但是此时,大多数情况下,不会获取所有的数据,而是获取其中符合要求的数据。
此时就需要循环和其他语句结合使用。
比如:求1-100之间的偶数和。
IDEA快捷键:100.fori
代码实现
public class Test15 {
public static void main(String[] args) {
/*
需求:在实际开发中,如果要获取一个范围中的每一个数据时,会用到循环。
但是此时,大多数情况下,不会获取所有的数据,而是获取其中符合要求的数据。
此时就需要循环和其他语句结合使用。
比如:求1-100之间的偶数和。
*/
//分析:
//1.获取1-100之间的数
//2.累加求和(先判断再求和)
int evenNumberSum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
evenNumberSum += i;
}
}
System.out.println(evenNumberSum);
}
}
案例7:统计满足条件的数字
需求:键盘录入两个数字,表示一个范围。
统计这个范围中既能被3整除,又能被5整除的数字有多少个。
代码实现
import java.util.Scanner;
public class Test16 {
public static void main(String[] args) {
/*
需求:键盘录入两个数字,表示一个范围。
统计这个范围中既能被3整除,又能被5整除的数字有多少个。
*/
//分析:
//1.键盘录入两个数字
Scanner sc = new Scanner(System.in);
System.out.println("请输入开始范围");
int rangeStart = sc.nextInt();
System.out.println("请输入结束范围");
int rangeEnd = sc.nextInt();
//2.用循环获取这个范围中的每一个数字
int rangeNumber = 0;
for (int i = 1; i <= rangeEnd; i++) {
//3.对每个数字进行判断,统计有多少个满足要求的数字。
if (i % 3 == 0 && i % 5 == 0) {
//System.out.println(i);
rangeNumber++;
}
}
System.out.println(rangeNumber);
}
}