本人之前对for循环,只知道基本的用法,但是对具体的检查判断条件、变量改变的时机把握的不是很准,尤其是嵌套几层的时候,就更糊涂了,如果面试笔试的时候碰上类似的问题,如果答错就直接悲剧了。
所以特此记录一下,等以后又忘记的时候看看,可以节省很多时间,呵呵。
/**
* initialize
* judge
* print value
* grow
* judge
* print value
* grow
* judge
* print value
* grow
* judge
*/
public class LoopTest1 {
public static void main(String[] args) {
for (int i = getInitValue(); judge(i); i = grow(i)) {
System.out.println("print value");
}
}
private static int grow(int i) {
System.out.println("grow");
return ++ i;
}
private static boolean judge(int i) {
System.out.println("judge");
return i < 3;
}
private static int getInitValue() {
System.out.println("initialize");
return 0;
}
}
总结:
1. i 变量的初始化只执行了一次
2. 第一次循环时,在完成变量初始化之后,进行判断,然后进入代码块
3. 第二次到最后一次循环之前,先改变变量的大小,然后进行判断,最后进入代码块
4. 最后一次循环,改变变量大小,之后判断为假,跳出循环
最后多说一句i++和++i的问题,这两条语句只要不是直接return,或者直接参与到其他的计算当中,起到的作用是等同的,不会有什么不同,即这两条语句对循环体起到的作用是相同的,不会有什么不同的影响,即两条语句在执行之后,变量i都增加了1
分享到:
相关推荐
红楼随笔——所谓狗尾续貂-用于合并.doc
教学随笔——怎样提高学生的习作水平.doc
改方案随笔——传统住宅及装配式住宅建筑设计方法之不同.doc
spring + hibernate 事务管理demo工程源码(无jar包) 博文链接:https://momoko8443.iteye.com/blog/190995
完整的学习JAVA的随笔
[【教育随笔】任性——一种可怕的教育结果]教育新理念.pdf
工作随笔开学第一天——新春茶话会.docx
小学一年级语文教案——《看菊花》教学随笔.doc
C++ Primer 中文版(第 5 版)第一章——随笔(含练习).docx
java记录随笔
【Java - 框架 - Knife4j】随笔
主要讲Java debug的概述,调试,以及使用
之前上传了JAVA笔记1 那么这次是JAVA笔记2 衔接上一次的
主要讲述Java数组的元素访问,数组的遍历,获取最值方法,数组元素的求和,查找,后面也给大家列举了一个案例:评委打分(用Java实现)
教师随笔-小班教师政治随笔5篇.docx
java课堂随笔,我这还有很多,有需要的话可以联系我,我会为大家提供很多的资料
主要简述Java中不同进制的写法,以及快速进制转换法,包括原码补码反码的讲解,还包括Java中的位运算,最后,给大家了一个Java案例:反转
主要讲述Java方法的定义和调用,以及带参数方法的定义和调用,方法的重载,方法的参数传递
【Java-框架-SpringSecurity】单点登录(认证和授权)- 随笔