for循环语句(详解+典例)

简介: for循环语句(详解+典例)

for循环语句

for循环是最早被引入的循环结构之一,最早出现在Fortran编程语言中,用于在已知循环次数的情况下进行迭代。后来,它被其他编程语言采用,并逐渐演化成为现代编程语言中常见的循环结构。


循环语句的由来:循环语句的设计灵感来自于现实生活中的循环过程,例如:在生产流水线上重复进行生产加工、在日常生活中重复执行某些任务等。计算机科学家和程序员意识到,如果能够使用一种结构来描述这种重复性,就可以提高代码的效率和可维护性。这就是循环语句的由来。


1、语法

for(初始化表达式;循环条件表达式;循环后操作表达式){
//语句序列
}
  • 初始化表达式:用于在进入循环之前执行一次,它可以是赋值表达式、运算表达式等,甚至可以是空语句(什么都不执行),但它不会影响循环的继续与否。
  • 循环条件表达式:值为boolean型的表达式,指定循环条件。循环条件表达式必须是产生布尔值的表达式,即结果为true或false。这通常涉及条件运算符、比较运算符等,用于决定循环是否继续执行。
  • 循环后操作表达式:负责修整变量,改变循环条件。在每次循环体执行完毕后执行,它也可以是赋值表达式、运算表达式等,同样不会影响循环条件的判断。

在for循环语句中,初始化表达式和循环后操作表达式可以是任意类型的表达式,而循环条件表达式必须是结果为布尔类型(boolean)的表达式。这是因为for循环是根据循环条件表达式的布尔值来判断是否继续执行循环体的,只有当循环条件表达式的值为true时,循环体才会被执行,否则循环会终止。


2、执行顺序

以下是多种for循环各个语句在执行过程中的顺序描述。

描述一:

在执行for循环时,首先执行初始化表达式,这一步通常是完成某一变量的初始化工作;下一步判断循环条件表达似乎的值,若循环条件表达式的值为true,则进入循环体;在执行完循环体后紧接着计算循环后操作表达式,这一步通常是增加或者减少循环控制变量的一个表达式。这样一轮循环就结束了。第二轮循环从计算循环操作后表达式开始,若循环条件表达式返回true,则继续重复上述循环,否则跳出整个for语句结束循环。

描述二:

①执行初始化表达式。

②判断循环条件表达式,如果结果为true执行步骤③④,结果为false跳到步骤⑤。

③执行循环体中的代码。

④执行循环后操作表达式。重复步骤②③④

⑤跳出整个for循环,循环结束。

描述三:

  1. 初始化表达式:首先,程序会执行for循环中的初始化表达式,通常是为循环计数器或其他计数变量赋初始值。
  2. 循环条件判断:在每次循环开始之前,循环条件表达式会被判断。如果条件为true,执行步骤3和步骤4;如果条件为false,循环结束,执行步骤5。
  3. 循环体执行:如果循环条件为true,程序会执行for循环体内的代码块。这是实际的循环操作部分,会重复执行。
  4. 循环后操作:在执行完循环体后,会执行循环后操作表达式,通常用于更新循环计数器或其他计数变量的值。
  5. 循环结束:程序会跳出整个for循环,循环结束。

描述四:


3、for循环适用场景

for循环:

1.遍历数组或集合:

遍历数组或集合:当您知道要遍历的次数时,例如遍历数组中的元素,for循环非常适合,因为您可以在循环头部明确设置循环次数。

2.数值范围迭代:

如果需要在一定范围内按照固定步长迭代,例如输出1到10的整数,for循环能够轻松实现。

3.数值范围迭代:

处理固定次数的任务:在某些情况下,您可能需要执行一段代码固定次数,比如打印输出特定的消息,for循环可以很好地处理这种情况。


4、例题

1.1 求和:编写一个程序,计算1到N之间所有整数的和,其中N是用户输入的正整数。

解答:

import java.util.Scanner;
//编写一个程序,计算1到N之间所有整数的和,其中N是用户输入的正整数。
public class Test2 {
    public static void main(String[] args) {
            sumN();
    }
    public static void  sumN(){
        Scanner s = new Scanner(System.in);
        System.out.println("请从键盘输入一个整数:");
        int N  = s.nextInt();
        int sum = 0;
        for (int i = 1; i<=N; i++){
            sum+=i;
        }
        System.out.println(sum);
    }
}

1.1 请写出下列程序的输出结果

public class Test {
    static boolean foo(char c){
        System.out.print(c);
        return true;
    }
    public static void main(String[] args) {
        int i = 0;
        for(foo('A');foo('B')&&(i<2);foo('C')){
            i++;
            foo('D');
        }
    }
}

答案:ABDCBDCB

解析:这道题涉及到了for循环的相关知识点,这个题目中的Test类有两个重要部分组成

部分一:准备工作是定义了一个foo()方法,调用该方法时参数是传一个字符,然后打印C字符,然后方法调用完返回true值。每调一次foo()方法都会把参数打印出来,然后返回true。

部分二:然后我们来看main方法里面,首先定义了一个局部变量i,初始化值为0,然后定义了一个for循环,这个for循环的三个核心要素都具备,分别是初始化表达式 foo(‘A’),循环条件表达式 foo(‘B’),循环后操作表达式。循环体中是 i++ 以及打印 foo(‘D’) 。

然后开始解题,首先记住变量 i = 0,然后开始执行for循环的初始化表达式,结果是打印A,然后判断循环条件表达式 && 左边为true,并且打印 B;&& 右边 i =0<2 ,结果为true,所以循环条件表达式结果为true。进入循环体,i++,然后执行foo(‘D’),打印D。继续执行for循环的循环后操作表达式打印C,然后执行条件表达式,&& 左边打印B,结果为true ,&&右边i=1<2, 结果为true,所以循环条件表达式结果为true,进入循环体i++,打印D,然后执行 foo(‘C’)打印C,然后执行循环条件表达式&&左边**打印B,**但是&&右边i=2<2,结果为false,所以跳出for循环。

条件表达式结果为true,进入循环体i++,打印D,然后执行 foo(‘C’)打印C,然后执行循环条件表达式&&左边**打印B,**但是&&右边i=2<2,结果为false,所以跳出for循环。


该文章收录在《java基础》专栏

目录
相关文章
|
存储 SQL 大数据
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
|
9月前
|
人工智能 算法 架构师
AI Agent 职业路线全解析:从入门到专家的进阶指南
大模型正进化为能自主感知、规划、执行的AI Agent。AI Agent工程师需掌握思维设计、记忆管理、工具调用等核心能力,职业路径分原型落地、企业级方案、领域专家三阶段,是人机交互升级与垂直领域溢价的长青赛道。(239字)
598 1
|
消息中间件 编解码 Kafka
Go语言并发模型与模式:Worker Pool 模式
Worker Pool(工作池)模式是Go语言中管理高并发任务的有效方法。通过限制 Goroutine 数量,避免资源耗尽或系统崩溃。其核心包括任务通道、工作者 Goroutine、结果通道(可选)及同步机制。示例代码展示了如何分配与处理任务,同时支持带返回值的实现。该模式适用于网络服务、批量任务处理、消息消费等场景,具有限制并发、提高稳定性和结构清晰的优点。但需注意通道关闭时机、任务取消机制及错误处理等问题。Worker Pool 是构建高效任务处理系统的强大工具。
|
机器学习/深度学习 人工智能 自然语言处理
原来AI也能“读心术”?——聊聊AI在心理学研究中的那些突破
原来AI也能“读心术”?——聊聊AI在心理学研究中的那些突破
639 1
|
人工智能
使用CodeBuddy实现网页自动连点器
CodeBuddy 能够迅速理解复杂功能要求,精准生成自动连点器代码。无论是游戏场景里对技能释放点击频率的精确控制,还是办公场景中对特定单元格点击位置的灵活设定,它都能高效满足。
692 6
|
存储 弹性计算 安全
阿里云服务器怎么样?云服务器ECS产品优势、应用场景、价格解析及常见问题参考
阿里云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。把物理服务器比作买的房子,云服务器ECS,就是租赁的房子,阿里云云服务商就是管家。云服务商负责搭建机房、提供配套服务和维护,用户只需要付租金,即可“拎包入住”,无需自建机房、采购和配置硬件设施。如果不再需要云服务器,可随时“退租”(释放资源),节省成本。本文为大家解析云服务器ECS产品优势、应用场景和最新价格及常见问题。
阿里云服务器怎么样?云服务器ECS产品优势、应用场景、价格解析及常见问题参考
|
存储 Linux iOS开发
文件系统选择合适的文件系统类型
【10月更文挑战第8天】
1513 4
|
开发工具 git
git如何修改提交代码时的名字和邮箱?
git如何修改提交代码时的名字和邮箱?
7099 4
|
安全 搜索推荐 机器人
纳米技术与医疗:纳米机器人的临床应用前景
【9月更文挑战第28天】纳米机器人作为纳米技术在医疗领域的重要应用,正逐步改变着传统医疗的面貌。它们在药物输送、癌症治疗、手术辅助和疾病诊断等方面展现出广阔的应用前景。随着科学技术的不断进步和纳米技术的不断成熟,我们有理由相信,纳米机器人将成为医疗领域的一个重要且不可或缺的组成部分,为人类的健康事业做出更大的贡献。同时,我们也应关注纳米技术的安全性和可靠性问题,确保其在医疗应用中的安全和有效。
1679 1
|
安全 Ubuntu Linux
6 个受欢迎且好用的轻量级Linux桌面环境
Linux被认为是最安全的系统,但这并不意味着它不受恶意软件或其他安全漏洞的侵害。Linux系统的使用范围非常广泛,因此防范潜在威胁至关重要。在这里,将探索 2024 年适用于 Linux 的最佳防病毒软件。根据评级、功能以及与其他 Linux 发行版的兼容性列出了十款最佳防病毒软件,内容仅供分享,不做其它用途。
5926 1
6 个受欢迎且好用的轻量级Linux桌面环境

热门文章

最新文章