Java语言程序设计——for循环语句

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


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循环的基本结构包括三个主要部分:

  1. 初始化表达式(Initial Expression):在循环开始之前执行,通常用于初始化一个计数器。
  2. 循环条件(Loop Condition):在每次迭代之前检查,如果条件为真(True),则执行循环体中的代码;如果为假(False),则退出循环。
  3. 迭代表达式(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值