提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Java for
循环简介
Java 中的 for
循环是一种控制流语句,它重复执行一段代码,直到给定的条件不再满足。Java 提供了几种 for
循环的形式,以下是最常见的几种:
1. 基本for循环
基本 for
循环由四个部分组成:初始化表达式、循环条件、迭代表达式和循环体。
for (初始化表达式; 循环条件; 迭代表达式) {
// 循环体
}
- 初始化表达式:在循环开始前执行一次,通常用于声明和初始化循环变量。
- 循环条件:每次循环开始前检查,如果条件为
true
,则执行循环体;如果为false
,则退出循环。 - 迭代表达式:在每次循环体执行后执行,通常用于更新循环变量。
- 循环体:需要重复执行的代码块。
例如:
for (int i = 0; i < 5; i++) {
System.out.println("i 的值是:" + i);
}
# 这个循环将打印数字 0 到 4。
2. 增强for循环(for-each循环)
Java 5 引入了增强 for
循环,它简化了数组和集合的遍历。
for (声明语句 : 表达式) {
// 循环体
}
- 声明语句:用于声明一个新的局部变量,其类型必须和数组或集合中元素的类型匹配。
- 表达式:表达式必须是一个数组或者是一个实现了
Iterable
接口的集合。
例如:
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println("数字:" + number);
}
# 这个循环将打印数组 numbers 中的每个元素。
3. 标签化的for循环
Java 允许你使用标签来标记循环,这样你可以在多层嵌套循环中直接跳转到指定的循环。
label1:
for (初始化表达式; 循环条件; 迭代表达式) {
// 循环体
}
label2:
for (初始化表达式; 循环条件; 迭代表达式) {
// 循环体
// 可以使用 break label1; 或 continue label1; 来控制外层循环
}
例如:
outerLoop:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (i == 2) {
break outerLoop; // 直接跳出外层循环
}
System.out.println("i = " + i + ", j = " + j);
}
}
# 当 i 等于 2 时,循环将使用 break 语句跳出外层循环。
for
循环是 Java 中非常强大和灵活的机制,它允许你以多种方式重复执行代码块。
一、for循环语句是什么?
for
循环语句是编程语言中的一种控制流语句,它能够重复执行一段代码,直到指定的条件不再满足。在大多数编程语言中,for
循环的基本结构包括三个主要部分:
- 初始化表达式(Initial Expression):在循环开始之前执行,通常用于初始化一个计数器。
- 循环条件(Loop Condition):在每次迭代之前检查,如果条件为真(True),则执行循环体中的代码;如果为假(False),则退出循环。
- 迭代表达式(Iteration Expression):在每次循环体执行之后执行,通常用于更新计数器。
for循环通常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。
# 基本语法
for (初始化表达式; 布尔表达式; 步进表达式) {
// 要重复执行的代码块
}
二、for语句使用说明
1.说明
(1)在for语句之前已经给循环变量赋初值,则for语句的循环变量赋初值部分可以省略,但其后得分号不省略。
(2)可以将循环变量修正值的工作纳入循环体中去做。
(3)for语句可以三个部分都省略。但省略表达式2会陷入死循环,除非在循环体中用break跳出。
2.常见错误分析
for子句与循环体之间出现错误的分号:
3.三种循环语句的选择
建议使用自己觉得最自然、最舒服的一种循环语句
通常,如果已知重复次数,那就采用for循环。如果无法确定重复次数,就采用while循环。如果在检验继续条件前需要执行循环体,就用do…while循环替代while循环。
4.实训练习
1. 将1~100之内的能被7整除的数输出。
public class DivisibleBySeven {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) {
System.out.println(i);
}
}
}
}
在这段代码中,我们使用了一个for
循环来迭代从1到100的整数。在循环内部,我们使用if
语句来检查当前数字i
是否能被7整除(即i % 7 == 0
)。如果条件成立,我们就输出这个数字。
2.输入10个整数,分别求出所有正数之和、所有负数之和、零的个数。
import java.util.Scanner;
public class SumOfNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int positiveSum = 0;
int negativeSum = 0;
int zeroCount = 0;
System.out.println("请输入10个整数:");
for (int i = 0; i < 10; i++) {
int number = scanner.nextInt();
if (number > 0) {
positiveSum += number;
} else if (number < 0) {
negativeSum += number;
} else {
zeroCount++;
}
}
System.out.println("所有正数之和为:" + positiveSum);
System.out.println("所有负数之和为:" + negativeSum);
System.out.println("零的个数为:" + zeroCount);
scanner.close();
}
}
在这个程序中,我们首先导入了Scanner
类来读取用户输入。然后,我们初始化了三个变量来分别存储正数之和、负数之和以及零的个数。通过一个for
循环,我们读取用户输入的10个整数,并根据这些整数的值来更新相应的变量。最后,我们输出这三个变量的值。记得在程序的最后关闭Scanner
对象以释放资源。
3.某次大奖赛,有七个评委打分,要求输入七个评委的打分分数,去掉一个最高分和一个最低分后,求出该参赛者的总得分。
import java.util.Scanner;
public class ScoreCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] scores = new int[7]; // 存储七个评委的分数
int sum = 0;
int maxScore = Integer.MIN_VALUE;
int minScore = Integer.MAX_VALUE;
System.out.println("请输入七个评委的打分:");
// 读取评委的打分
for (int i = 0; i < scores.length; i++) {
scores[i] = scanner.nextInt();
sum += scores[i]; // 累加分数
}
// 使用for循环找出最高分和最低分
for (int score : scores) {
if (score > maxScore) {
maxScore = score; // 更新最高分
}
if (score < minScore) {
minScore = score; // 更新最低分
}
}
// 去掉一个最高分和一个最低分
sum = sum - maxScore - minScore;
System.out.println("去掉一个最高分和一个最低分后,参赛者的总得分为:" + sum);
scanner.close();
}
}
在这个程序中,我们使用两个for
循环:第一个循环用于读取评委的分数并累加到sum
变量中;第二个循环用于遍历分数数组scores
以找出最高分maxScore
和最低分minScore
。在找到最高分和最低分之后,我们从总和中减去这两个分数,得到最终的总得分并输出。记得在程序的最后关闭Scanner
对象以释放资源。
总结
for
循环是Java程序设计中不可或缺的一部分,掌握其用法对于编写高效、简洁的代码至关重要。通过灵活运用for
循环,可以解决许多编程问题,尤其是在处理重复性任务和遍历数据结构时。在实际应用中,应根据具体需求选择合适的循环结构,并注意优化循环性能。
【java循环语句之for循环】 https://www.bilibili.com/video/BV1XJ2qYmEhD/?share_source=copy_web&vd_source=2c9ea2fb244f36aafaf7fda9e57e5569