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

for循环语句

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


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

目录

    • 1、语法
    • 2、执行顺序
    • 3、for循环适用场景
    • 4、例题

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循环,循环结束。

描述四:

for循环语句(详解+典例)_第1张图片


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基础》专栏

你可能感兴趣的:(java基础,java,intellij-idea,开发语言)