对java for 循环执行顺序的详解
如下所示:
for(表达式1;表达式2;表达式3) { //循环体 }
先执行“表达式1”,再进行“表达式2”的判断,判断为真则执行 “循环体”,循环体执行完以后执行表达式3.
例如
for(int i=0;i<2;i++){ //TODO }
先执行 int i = 0;
然后 判断 i<2
然后执行函数体
最后执行i++
然后轮回到判断i<2
int[] arr = new int[3]; int j; arr[0] = 1; arr[1] = 2; arr[2] = 3; int searchKey = 3; for( j=0;j<arr.length ;j++){ System.out.println("j1========="+j); if(arr[j] == searchKey){ break; } } System.out.println("j2========="+j);
运行结果
j1=========0
j1=========1
j1=========2
j2=========2
int[] arr = new int[3]; int j; arr[0] = 1; arr[1] = 2; arr[2] = 3; int searchKey = 4; for( j=0;j<arr.length ;j++){ System.out.println("j1========="+j); if(arr[j] == searchKey){ break; } } System.out.println("j2========="+j);
运行结果
j1=========0
j1=========1
j1=========2
j2=========3
对比以上两段代码以及运行结果,循环体中 break 后,表达式3将不会执行,即第一块代码中最后一次j++未执行
以上这篇对java for 循环执行顺序的详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
举例说明Java中代码块的执行顺序
前言 今天在看Android ContentProvider实现的时候,突然想到了Java类在new的过程中,静态域.静态块.非静态域.非静态块.构造函数的执行顺序问题.其实这是一个很经典的问题,非常考察对Java基础知识的掌握程度.很多面试过程中相信也有这样的问题,趁着周末有时间复习一下. 结论 这里先把整理好的结论抛给大家,然后我在写个程序来验证我们的结论.在Java类被new的过程中,执行顺序如下: 实现自身的静态属性和静态代码块.(根据代码出现的顺序决定谁先执行) 实现自
-
Java 普通代码块静态代码块执行顺序(实例讲解)
如下所示: class B { public B() { super(); System.out.println("构造器B"); } { System.out.println("普通的代码块B"); } static{ System.out.println("静态代码块B"); } } public class ClassA extends B { public ClassA() { super(); System.out.println(&q
-
java中静态代码块与构造方法的执行顺序判断
前言 静态代码优先于非静态的代码,是因为被static修饰的成员都是类成员,会随着JVM加载类的时候加载而执行,而没有被static修饰的成员也被称为实例成员,需要创建对象才会随之加载到堆内存.所以静态的会优先非静态的. 执行构造器(构造方法)的时候,在执行方法体之前存在隐式三步: 1,super语句,可能出现以下三种情况: 1)构造方法体的第一行是this语句,则不会执行隐式三步, 2)构造方法体的第一行是super语句,则调用相应的父类的构造方法, 3)构造方法体的第一行既不是this语句也
-
简单了解java中静态初始化块的执行顺序
这篇文章主要介绍了简单了解java中静态初始化块的执行顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在java中,其应该是先于所有的方法执行. 下面是测试代码: public class Test1 { static{ System.out.println("执行静态初始化块test1..."); } { System.out.println("执行初始化块test1"); } public Test1(){
-
JAVA中使用双括号来初始化静态常量的小技巧
这貌似是个不为人知的语言技巧.我看到一般人写Java里初始化静态常量都是 复制代码 代码如下: public static final Map<String, String> DATA = new TreeMap<String, String>(); static{ DATA.put("a", "A"); //blah blah blah} 使用所在类的static块来初始化DATA,其实还有另外一种写法: 复制代码 代码如下: public
-
详解Java Web项目启动执行顺序
一.web.xml配置节点简介 (1) context-param 格式定义 <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mybatis.xml</param-value> </context-param> 作用: 该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数. p
-
Java中一维二维数组的静态和动态初始化
今天我们要开始来讲讲Java中的数组,包括一维数组和二维数组的静态初始化和动态初始化 数组概述: 数组可以看成是多个相同类型数据的组合,对这些数据的统一管理; 数组变量属于引用数据类型,数组也可以看成是对象,数组中的每一个元素相当于该对象的成员变量; 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型; 一维数组的声明: 声明方式: 例如; int a [ ] = new int [3]; Java语言中 声明是不能指定其长度[数组中元素的个数]; 非法声明; int a [5];
-
Java中static静态变量的初始化完全解析
静态变量初始化顺序 1.简单规则 首先先看一段最普遍的JAVA代码: public class Test { public static Test1 t = new Test1(); public static int a = 0; public static int b; public static void main(String[] arg) { System.out.println(Test.a); System.out.println(Test.b); } } class Test1
-
对java for 循环执行顺序的详解
如下所示: for(表达式1;表达式2;表达式3) { //循环体 } 先执行"表达式1",再进行"表达式2"的判断,判断为真则执行 "循环体",循环体执行完以后执行表达式3. 例如 for(int i=0;i<2;i++){ //TODO } 先执行 int i = 0; 然后 判断 i<2 然后执行函数体 最后执行i++ 然后轮回到判断i<2 int[] arr = new int[3]; int j; arr[0] = 1
-
Java JDBC批量执行executeBatch方法详解
JDBC事务 在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态.为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态. 事务的操作:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态. 事
-
Golang控制协程执行顺序方法详解
目录 循环控制 通道控制 互斥锁 async.Mutex 在 Go 里面的协程执行实际上默认是没有严格的先后顺序的.由于 Go 语言 GPM 模型的设计理念,真正执行实际工作的实际上是 GPM 中的 M(machine) 执行器,而我们的协程任务 G(goroutine) 协程需要被 P(produce) 关联到某个 M 上才能被执行.而每一个 P 都有一个私有队列,除此之外所有的 P 还共用一个公共队列.因此当我们创建了一个协程之后,并不是立即执行,而是进入队列等待被分配,且不同队列之间没有顺
-
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
俗话说的好,好记性不如个烂笔头,这么多技术文章如果不去吃透,技术点很快就容易忘掉,下面是小编平时浏览的技术文章,整理的笔记,分享给大家. 开发过程中我们都希望使用别人成熟的框架,因为站在巨人的肩膀上会使得我们开发的效率大幅度提升.不过,我们也应该.必须了解其基本原理.比如DOM事件,jquery框架帮我们为我们封装和抽象了各浏览器的差异行为,为事件处理带来了极大的便利.不过浏览器逐步走向统一和标准化,我们可以更加安全地使用官方规范的接口.因为只有获得众多开发者的芳心,浏览器才会走得更远.正如我们
-
go defer return panic 执行顺序示例详解
目录 一.函数中有panic 二.然后将代码中 panic注释掉再执行 三.函数返回的是匿名参数 四.总结: ps:go语言错误和异常处理,panic.defer.recover的执行顺序 一.panic()和recover() 根据代码实例运行结果来总结 说明:定义一个函数,有多个defer (用于判断多个defer执行顺序),有panic和 return (判断与defer对比执行顺序) 一.函数中有panic package main import "fmt" func main
-
oracle select执行顺序的详解
SQL Select语句完整的执行顺序:1.from子句组装来自不同数据源的数据:2.where子句基于指定的条件对记录行进行筛选:3.group by子句将数据划分为多个分组:4.使用聚集函数进行计算:5.使用having子句筛选分组:6.计算所有的表达式:7.使用order by对结果集进行排序. oracle 语句提高查询效率的方法 1:.. where column in(select * from ... where ...); 2:... where exists (select '
-
Python中实例化class的执行顺序示例详解
前言 本文主要介绍了关于Python实例化class的执行顺序的相关内容,下面话不多说了,来一起看看详细的介绍吧 Python里对类的实例化时有怎样的顺序 一般来说一个类里面有类变量和方法,比如我们定义一个名为A的类 class A(): bar = "my lover love me" def __init__(self, name): print('A的class' ,self.__class__, name) 我们在这个类里面定义了一个类变量bar和一个构造方法__init__,
-
Java代码块与代码加载顺序原理详解
这篇文章主要介绍了Java代码块与代码加载顺序原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本文首先介绍几个基本的名次,然后介绍了三种代码块的特性和使用方法. 在面试大型公司时,如果遇到大型国企或者大的互联网私企,笔试中经常遇到代码块和代码加载顺序的笔试题.这里做一个总结,也方便各位小伙伴飙车不会飘. 名词解释 代码块 由 { } 包起来的代码,称为代码块 静态代码块 由 static { } 包起来的代码,称为静态代码块. 不同类型
-
Java选择结构与循环结构的使用详解
目录 前言 一.选择结构 1.1 if选择结构的四种格式 1.2 switch选择结构 二.循环结构 2.1 while循环结构 2.2 do-while循环结构 2.3 for循环结构 2.4 for-each循环结构 三.控制语句 前言 大家了解了Java中的变量.数据类型和运算符后,小编给大家介绍使用选择结构和循环结构解决问题. 一.选择结构 1.1 if选择结构的四种格式 1.1.1 基本if语句—单分支判断 if(比较表达式){ 语句体: } /* 执行流程是:判断比较表达式中的值,是
-
Shell执行/调用Java/Jar程序例子的实例详解
Shell执行/调用Java/Jar程序例子的实例详解 前言: 最近要写一个独立的Java程序去监控Hadoop和Oozie,通过Shell去调用.写代码到现在也4年多了,貌似就从来没在生产环境中写过一个独立的Java程序,不是部署到Tomcat就是直接丢给Hadoop.于是参考Hadoop等开源环境,自己写了一个demo,并且可以通过Ant打包生成可运行的程序.所以这里有三步:Java程序,Shell,Ant 1.首先建立Java程序,由于是例子,所以这里很简单,只是输出传入参数的个
随机推荐
- thinkphp区间查询、统计查询与SQL直接查询实例分析
- Freemarker如何生成树形导航菜单(递归)
- 基于PHP静态类的原罪详解
- python自然语言编码转换模块codecs介绍
- D3.js中data(), enter() 和 exit()的问题详解
- JQuery Ajax动态生成Table表格
- 网页中Flash播放器常用参数设置
- java多线程编程之慎重使用volatile关键字
- 从零学习node.js之mysql数据库的操作(五)
- SQL查询语句精华使用简要第1/2页
- 安装LINUX的详细过程图解
- Java编写计算器的常见方法实例总结
- 答你所问 .NET小常识 方便学习asp.net的朋友
- linux多线程编程(四)
- C++设计模式之职责链模式
- C#生成唯一不重复订单号
- Android中创建一个透明的进度对话框实例
- VC++ 中ListCtrl经验总结
- Android图片压缩几种方式总结
- MixPHP、Yii和CodeIgniter的并发压力测试小结