`

随笔——java for循环

    博客分类:
  • JAVA
 
阅读更多

本人之前对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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics