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

从零开始学Java封面10.jpg

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

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

在 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 < = 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 <= 100的值控制循环是否结束,i <= 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);
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容