流程控制-循环 - 图1

for 循环

标准形式

  1. for (表达式1; 表达式2; 表达式3) {
  2. 语句序列;
  3. }

  表达式1:初始化表达式,负责变量初始化。
  表达式2:循环条件表达式,负责判断循环什么时候停止。
  表达式3:循环后表达式,负责修改变量。

  例题:计算1~100的偶数之和

  1. public static void main(String[] args) {
  2. int sum = 0;
  3. for (int i = 2; i <= 100; i += 2) {
  4. sum += i;
  5. }
  6. System.out.println(sum);
  7. }

  经常在循环外定义一个变量,来保存循环里面执行的情况。(90%都是如此)

foreach 语句

  foreach是for的简化版本,但是并不能完全代替for语句,foreach不是关键字,只是习惯上将这种特殊的for语句称为foreach。

  foreach在遍历数组和线性集合方面非常方便,如果不需要使用数组下标,使用foreach很方便,如果需要使用数组下标,就是用for循环标准形式。

  1. for (元素变量 x : 遍历对象 obj) {
  2. 引用xjava语句;
  3. }

  使用foreach需要注意的点:foreach不能改变遍历对象中元素的值,如果希望给数组赋值或者修改数组的值,只能使用for标准形式进行修改,不能使用foreach。

  1. int[] arr = new int[10];
  2. int t = 0;
  3. for (int x : arr)
  4. x = ++t;
  5. for (int x : arr)
  6. System.out.println(x);

流程控制-循环 - 图2

while 循环

while 格式

  1. while (条件表达式) {
  2. 语句序列;
  3. }

do…while 格式

do {
    语句序列;
} while (条件表达式);

区别:

  1. while循环先判断条件表达式再执行
  2. do…while不管条件表达式是true还是false,先执行一次,再判断条件表达式。
  3. do…while语句在while后面有一个“;”,而while没有

练习:

  思考下面代码输出结果:

int i = 0;
while (++i < 5) {
    System.out.print(i);
}
System.out.println();


i = 0;
while (i++ < 5) {
    System.out.print(i);
}
System.out.println();


int j = 0;
do {
    System.out.print(j);
} while (++j < 5);
System.out.println();


j = 0;
do {
    System.out.print(j);
} while (j++ < 5);
}

  输出结果:

1234
12345
01234
012345

  如果不明白的,去看看运算符的使用,这里考察的主要是运算符。