今天碰到一好玩的问题,不幸答错,在此坐下笔记。
虽然工作的时间不短了,却被一个for循环拿下,先鄙视下自己。
public class ForTest {
static boolean order(char c) {
System.out.print(c);
return true;
}
public static void main(String[] args) {
int i = 0;
for (order('A'); order('B') && (i < 2); order('C')) {
i++;
order('D');
}
}
}
问以上代码能运行么,如果不能又是为什么?
平时写惯了for(int i;i<xxx;i++) 也写了很多for(Object o:list<Object>),此时才发现,自己是小白啊。
以上代码是可以运行的,输出结果是:ABDCBDCB
为什么如此?
联想一下for(int i=0;i<3;i++)这个大家都会写的写法。
for循环的执行顺序就出来了。
第一次循环:
首先执行 order('A') 打印A,接着做逻辑运算:order('B')&&(i<2) 只要做逻辑运算,那么B就一定会被打印,第一次的时候不会执行到order('C')
这里第一次就执行完毕了,此时由于i++,i变成了1。
第二次循环:
这个时候会以order('C')作为起始的执行点(就像for(int i=0;i<3;i++) 第二次循环的时候是以i++的值开始一样)那么C会被打印,接着是做逻辑运算,B会被打印。最后是进入循环体,打印D,然后执行了i++,此时i=2。
即第二次之后后面的循环起始就都变为了order('C'),那么第三次 C首先被打印,接着是逻辑运算B会被打印,但此时的逻辑运算不能满足要求了,因为i=2 不再 小于2了 因此D不会被打印。固结果为:ABDCBDCB
分享到:
相关推荐
赠送jar包:aws-java-sdk-core-1.11.939.jar 赠送原API文档:aws-java-sdk-core-1.11.939-javadoc.jar 赠送源代码:aws-java-sdk-core-1.11.939-sources.jar 包含翻译后的API文档:aws-java-sdk-core-1.11.939-...
赠送jar包:aws-java-sdk-core-1.12.160.jar; 赠送原API文档:aws-java-sdk-core-1.12.160-javadoc.jar; 赠送源代码:aws-java-sdk-core-1.12.160-sources.jar; 赠送Maven依赖信息文件:aws-java-sdk-core-1.12....
这个"Aspose.Diagram-for-Java-master.zip"压缩包包含了Aspose.Diagram官方提供的Java示例代码,对于正在学习或者使用Aspose.Diagram的开发者来说,是一份非常有价值的参考资料。 在解压这个文件后,我们主要会看到...
谷歌java格式 google-java-format是一个重新格式化 Java 源代码以符合 Google Java Style的程序。 使用格式化程序 从命令行 下载格式化程序 并运行它: java -jar /path/to/google-java-format-${GJF_VERSION?}-all...
MySQL Connector/J是MySQL数据库系统与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够轻松地在Java应用程序中连接到MySQL数据库。标题中的"mysql-...
支持mysql-connector-java-5.6,mysql-connector-java-5.0.X以上
MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在Java应用中访问MySQL数据库。本资源提供的"mysql-...
This library allow simple implementation for some tasks in android Usage Add library to project dependencies. repositories { maven { url "https://jitpack.io" } } dependencies { // snapshot ...
本资源原文为java-for-Anylogic-user英文版,即面向Anylogic用户的Java开发,本人纯手工翻译,讲述以拖放方式以外的编程思路,对于建立复杂系统有很大帮助。这是一个信息论,可以在模型中进行数据操作以及智能体的...
为了在Java环境中与MySQL数据库进行交互,我们需要一个中间桥梁,这就是所谓的JDBC(Java Database Connectivity)驱动。"mysql-connector-java-5.1.7-bin.jar" 文件就是这个桥梁,它是一个Java归档(JAR)文件,...
然后,应用程序通过调用`Class.forName()`方法加载MySQL的JDBC驱动。接着,`DriverManager.getConnection()`方法被用来创建数据库连接,传入包含数据库URL、用户名和密码的参数。一旦连接建立,就可以通过`Statement...
解决 Maven 无法下载 fastdfs-client-java-1.29-SNAPSHOT 依赖,直接下载之后用maven命令存储到本地maven仓库即可。 maven命令 mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java ...
MySQL-connector-java-8.0.28 是MySQL数据库与Java应用程序之间通信的重要组件,它是一个JDBC(Java Database Connectivity)驱动程序,使得Java开发者能够通过编写Java代码来访问和操作MySQL数据库。在这个版本中,...
MySQL是世界上最流行的开源关系型数据库管理系统之一,而`mysql-connector-java-5.1.7.jar`是MySQL官方为了使得Java应用程序能够连接到MySQL数据库而提供的JDBC(Java Database Connectivity)驱动程序。JDBC是Java...
eclipse-java-2023-12-R-win32-x86_64.zip 适用于Windows系统
MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个实现了JDBC(Java Database Connectivity)标准的MySQL驱动程序。"mysql-connector-java-5.1.40.tar.gz" 是这个驱动程序的一个特定版本,版本号为...
1. 加载驱动:使用`Class.forName()`方法加载驱动程序类,例如`Class.forName("com.mysql.jdbc.Driver")`。 2. 创建连接:使用`DriverManager.getConnection()`方法,提供数据库URL、用户名和密码,例如`Connection ...
MySQL Connector/J是MySQL数据库管理系统与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在Java应用中访问MySQL数据库。`mysql-connector-...
MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)规范的驱动程序,使得Java开发者能够通过编写Java代码来访问和操作MySQL数据库。标题中的"mysql-...
《MySQL数据库连接器Java驱动详解——mysql-connector-java-5.1.10-bin.jar》 MySQL数据库在软件开发中占据着重要的地位,而与之交互的Java应用程序通常依赖于`mysql-connector-java`这个数据库驱动。本文将深入...