10. 程序流控制-循环结构 【连载 10】

之前的文章中给大家介绍了选择结构来控制程序流转,这篇文章内容着重介绍一下另外一种程序流控制,循环结构。

有的时候我们需要在程序中重复的去做某一件事情,比如重复对某个变量进行相同的操作。这个时候我们就可以采用循环结构来帮我们处理。

在 Java 中常用的循环结构主要三种:

  1. for 循环
  2. while 循环
  3. do while 循环

1. for 循环

for 循环是经常用到的一种循环结构,它的结构是这样的

for (循环变量初始值; 判断循环是否结束的表达式; 更新循环控制变量) {
 循环内容
}

for 循环处理一个数学计算题:

从 1 加到 100 的值是多少?

int num = 0;
for (int i = 0; i <= 100; i++) {
  num += i;
}
System.out.println("num = " + num);
  1. 执行初始化步骤, int i = 0;
  2. 判断循环是否结束,i &lt; = 100 如果为true,循环体 num += 1被执行。如果为false,循环终止
  3. 执行一次循环后,更新循环控制变量 i++
  4. 再次判断循环是否结束,循环执行上面的过程

注意不要死循环

for (;;;) {
  System.out.println("这是一个死循环,会一直执行下去");
}

for循环来遍历输出数组的值

输出颜色数组 {"red", "yellow", "blue", "green","orange"}的每个颜色

String[] colors = {"red", "yellow", "blue", "green","orange"};
for (int i = 0; i < colors.length; i++) {
  System.out.println(colors[i]);
}

增强的 for 循环:

String[] colors = {"red", "yellow", "blue", "green","orange"};
for (String color : colors) {
  System.out.println(color);
}

2. while 循环

for 循环我们可以很轻易的次数,循环次数达到会结束循环。while 循环则会一种不断地运行,直到指定的条件不满足位置。

while 循环的结构:

while (布尔判断表达式) {
 循环内容 
}

while 循环处理数学问题:

从 1 加到 100 的值是多少?

int i = 1;
int sum = 0;
while (i <= 100) {
  sum += i;
  i++;
}
System.out.println("sum = " + sum);

while 循环将布尔判断表达式:i &lt;= 100的值控制循环是否结束,i &lt;= 100false 终止循环。

死循环是这样子的:

while (true) {
  System.out.println("这是死循环,会一直执行");
}

扩展 while 循环应用

需求:持续从键盘获取输入内容,并打印出来

import java.util.Scanner;
public class WhileDemo {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            String cmd = scanner.next();
            System.out.println(cmd);
            if ("exit".equals(cmd)) {
                break;
            }
        }
        scanner.close();
    }
}

break 可以跳出整个循环

3. do while 循环

对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。 do while循环和while循环相似,不同的是,do while循环至少会执行一次。

do while 循环的结构:

do {
  循环的内容
} while (布尔表达式)

再来解决一下这个数据问题:从 1 加到 100 的值是多少?

int i = 0;
int sum = 0;
do {
  sum += i;
  i++;
} while (i <= 100);
System.out.println("sum = " + sum);

4. break 的作用

我们已经知道break 可以跳出 switch 结构,在循环结构中,它可以跳出整个循环。

持续从键盘获取输入内容,并打印出来的实例中已经知道 break 可以跳出 while循环,对于 for 循环,它也有同样的作用。

String[] colors = {"red", "yellow", "blue", "green","orange"};
for (String color : colors) {
  System.out.println(color);
  if ("blue".equals(color)) {
    break;
  }
}

5. continue 的作用

continue 用于循环结构中,可以让程序立刻跳到下一次循环。

输出 1 到 100 之内的奇数:

for (int i = 0; i <= 100; i++) {
  if (i % 2 == 0) {
    continue;
  }
  System.out.println(i);
}

6. return 的作用

  • return后面跟一个值或者变量,指定一个方法的返回值
  • 单独的return;语句,后面不跟任何值或者变量,表示退出当前方法

sum 函数返回计算结果给调用该方法者

public static void main(String[] args) {
  int n = sum(100, 200);
  System.out.println(n);
}

public static int  sum(int n1, int n2) {
  int sum = n1 + n2;
  return sum;
}

输出 0 到 49 的每个值:

for (int i = 0; i <= 100; i++) {
  if (i == 50) {
    return;
  }
  System.out.println(i);
}

扣扣交流群:468439140