for循环语句
for循环是最早被引入的循环结构之一,最早出现在Fortran编程语言中,用于在已知循环次数的情况下进行迭代。后来,它被其他编程语言采用,并逐渐演化成为现代编程语言中常见的循环结构。
循环语句的由来:循环语句的设计灵感来自于现实生活中的循环过程,例如:在生产流水线上重复进行生产加工、在日常生活中重复执行某些任务等。计算机科学家和程序员意识到,如果能够使用一种结构来描述这种重复性,就可以提高代码的效率和可维护性。这就是循环语句的由来。
for(初始化表达式;循环条件表达式;循环后操作表达式){
//语句序列
}
在for循环语句中,初始化表达式和循环后操作表达式可以是任意类型的表达式,而循环条件表达式必须是结果为布尔类型(boolean)的表达式。这是因为for循环是根据循环条件表达式的布尔值来判断是否继续执行循环体的,只有当循环条件表达式的值为true时,循环体才会被执行,否则循环会终止。
以下是多种for循环各个语句在执行过程中的顺序描述。
描述一:
在执行for循环时,首先执行初始化表达式,这一步通常是完成某一变量的初始化工作;下一步判断循环条件表达似乎的值,若循环条件表达式的值为true,则进入循环体;在执行完循环体后紧接着计算循环后操作表达式,这一步通常是增加或者减少循环控制变量的一个表达式。这样一轮循环就结束了。第二轮循环从计算循环操作后表达式开始,若循环条件表达式返回true,则继续重复上述循环,否则跳出整个for语句结束循环。
描述二:
①执行初始化表达式。
②判断循环条件表达式,如果结果为true执行步骤③④,结果为false跳到步骤⑤。
③执行循环体中的代码。
④执行循环后操作表达式。重复步骤②③④
⑤跳出整个for循环,循环结束。
描述三:
描述四:
for循环:
1.遍历数组或集合:
遍历数组或集合:当您知道要遍历的次数时,例如遍历数组中的元素,for循环非常适合,因为您可以在循环头部明确设置循环次数。
2.数值范围迭代:
如果需要在一定范围内按照固定步长迭代,例如输出1到10的整数,for循环能够轻松实现。
3.数值范围迭代:
处理固定次数的任务:在某些情况下,您可能需要执行一段代码固定次数,比如打印输出特定的消息,for循环可以很好地处理这种情况。
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基础》专栏