for循环的执行循序

先上一段代码,大家说出此方法的执行结果:

public class Print{
    static boolean out(char c){
        System.out.println(c);
        return true;
    }
    public static void main(String[] argv){
        int i = 0;
        for(out(‘A‘);out(‘B‘) && (i<2);out(‘C‘)){
            i++;
            out(‘D‘);
        }
    }
}

答案不说了,直接说解题思路吧

for循环的执行顺序用如下表达式:

for(expression1;expression2;expression3){

expression4;

}

执行的顺序应该是:

1)第一次循环,即初始化循环。

首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件;如果符合,则执行expression4,否则,停止执行;最后执行expression3。

2)第N(N>=2)次循环

首先执行expression2,判断在expression3是否符合在expression2要求;如果符合,则继续执行在expression4,否则,停止执行。最后执行在expression3。如此往复,直至expression3不满足在expression2条件是为止。

总结:

总的来说,执行的顺序是一致的。先条件判断(expression2),再函数体执行(expression4),最后for执行(expression3)。往复......区别在于,条件判断的对象。第一次判断时,对象为初始化语句(expression1),后续的判断对象为执行后的结果(expression3)。

时间: 2024-08-18 19:15:47

for循环的执行循序的相关文章

ASP.NET执行循序

首先第一次运行一个应用程序(WebSite或者WebApplication都是Web应用程序)第一次请求 -> 1,IIS -> 2,aspnet_isapi(非托管dll) -> 3,HttpRuntime(到这里已经是托管的了)HttpRuntime中只有一个方法ProcessRequest 这个方法是整个应用程序的入口点 HttpContext就是在这个方法里面构建的 出了这个方法后HttpContext就构建完成了 -> 4,执行HttpApplication类的Start

sql执行循序

(8) select (9) distinct (11) top 1 (6) Table1.id,COUNT(Table1.name) as nameCount (1) from Table1 (3) inner join Table2 (2) on Table1.id=Table2.id (4) where Table1.id<4 (5) group by Table1.id (7) having Table1.id<3 (10) order by Table1.id desc 序号给出了执

python 双层for循环,在第二层的for循环中的else中的continue,会退出到第一层for循环继续执行

1 for a in [1,2,3,4,5]: 2 3 for b in [1,2,3]: 4 if a == b: 5 print("a = b = %s" % a) 6 break # 退出本次for循环,执行第一行的for循环 7 else: 8 print("a = %s" % a) 9 continue # 继续执行第一行的for循环 10 print("结束") a = b = 1a = b = 2a = b = 3a = 4a =

循序与二元搜索算法-java

循序搜索法 就是一个一个去比较,找到时返回: 二元搜索法 二元搜索算法是在排好序的数组中找到特定的元素. 首先, 比较数组中间的元素,如果相同,则返回此元素的指针,表示找到了. 如果不相同, 此函数就会继续搜索其中大小相符的一半,然后继续下去. 如果剩下的数组长度为0, 则表示找不到,那么函数就会结束. 实现代码: package com.zc.manythread; import java.util.Random; import java.util.Scanner; /** * * @auth

java 静态资源,非静态资源,父类子类,构造方法之间的初始化循序

java面试经常被问静态资源,非静态资源,父类子类,构造方法之间的执行顺序.下面添加两个类做个测试 class Parent { // 静态变量 public static String p_StaticField = "父类--静态变量"; // 变量(其实这用对象更好能体同这一点,如专门写一个类的实例) //如果这个变量放在初始化块的后面,是会报错的,因为你根本没有被初始化 public String p_Field = "父类--变量"; // 静态初始化块

java循环练习:由输入的值决定循环的执行次数,循环变量默认从1开始

package practiceGO; import java.util.Scanner; /*   3.由输入的值决定循环的执行次数,循环变量默认从1开始  */ public class Cto { public static void main(String[] args) { Scanner sc = new Scanner(System .in); System.out.println("请输入循环次数:"); int time = sc.nextInt(); for(int

助教:C语言问题收集--scanf()的一些常见问题;switch语句;for循环的执行顺序

scanf函数中的"格式控制"后面应当是变量地址,而不应是变量名. 输入数据时不能规定精度. scanf("%7.2f",&a).这是不合法的.但是,scanf("%3d%3d",&a,&b)这样写可以. 如果在"格式控制"字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符. scanf("%d,%d,%d",&a,&b,&

for循环的执行顺序

for循环的执行顺序用如下表达式: for(expression1;expression2;expression3) { expression4; } 执行的顺序应该是: 1)第一次循环,即初始化循环. 首先执行表达式expression1(一般为初始化语句):再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件:如果符合,则执行expression4,否则,停止执行:最后执行expression3. 2)第N(N>=2)次循环 首先

嵌套的for循环执行顺序。可以让内外for循环交替执行。简单解析json数组。求js中两个时间差值。

1.刚接到不久的工作任务,其中包含一个解析json数组,然后让解析后的数据显示在用zrender画出来的矩形上.效果如下所示(注:没有实际意义) 2.至于zrender等空闲了一定写上使用心得,东西很强大. 3.中间有一项是算计相邻的两个时间的时间差(所有这些时间都是在一个数组里),如图所示,算计相邻两个矩形上时间的差值.延伸一下可以是算一个数组里相邻两个数字的差值. 贴上我的代码 :  for (var m = 0; m < dataObj.length - 1; m++) {