我是靠谱客的博主 迷人小松鼠,最近开发中收集的这篇文章主要介绍while、do-while 和 for 循环的区别一、for 循环执行顺序二、while 循环执行顺序三、do-while 循环执行顺序四、三者区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

while、do-while 和 for 循环的区别

  • 一、for 循环执行顺序
  • 二、while 循环执行顺序
  • 三、do-while 循环执行顺序
  • 四、三者区别
    • 1、for 循环
    • 2、while 循环
      • 2.1 “循环迭代<3>”放在 continue 之后
      • 2.2 “循环迭代<3>”放在 continue 之前
    • 3、do-while 循环
      • 3.1 “循环迭代<3>”放在 continue 之后
      • 3.2 “循环迭代<3>”放在 continue 之前
      • 3.3 do-while 至少执行一次

不管是 for 、while 还是 do-while,循环一般都包括三个部分:
1、循环初始条件<1>
2、循环判断条件<2>
3、循环迭代<3>

一、for 循环执行顺序

可以参考这个老哥写的博客:For循环执行顺序流程

for (初始条件<1>; 判断条件<2>; 循环迭代<3>) {
	循环代码块;
}
  1. 首先,执行“初始条件<1>”
  2. 然后,判断 “初始条件<1>”是否满足 “判断条件<2>”。若满足条件,则进入循环体进行循环;否则,不进入循环体,直接退出
  3. 执行完一次循环体之后(就是到 执行到 右半拉 “}” 之前), 将进行一次“循环迭代<3>”(比如,i++、i–等)。然后再回到第2步,但此时不会再执行判断 “初始条件<1>”(仅第一次执行)。

Note:如果 for 循环里面有 continue 的话,下一步是去执行上述第3步。即,for循环 continue后会进行一次 “循环迭代<3>”。这也是 for 和 while的区别。

二、while 循环执行顺序

初始化<1>
while (判断条件<2>) {
	循环代码块;

	循环迭代<3>
}
  1. 首先,执行“初始条件<1>”;
  2. 然后,判断 “初始条件<1>”是否满足 “判断条件<2>”。若满足条件,则进入循环体进行循环;否则,不进入循环体,直接退出;
  3. 整个循环体里面的所有内容(包括 “循环代码块” + “循环迭代<3>” )都执行完毕后,再次回到第 2 步。

Note:第 1 步和第 2 步,while 和 for 其实是一样的,仅第三步有点差异

三、do-while 循环执行顺序

初始化<1>
do {
	循环代码块;

	循环迭代<3>
} while (判断条件<2>)
  1. 首先,执行“初始条件<1>”;
  2. 然后,直接进入循环体(执行“循环代码块” + “循环迭代<3>”);
  3. 然后,判断经过“循环迭代<3>”后的 i 是否满足 “判断条件<2>”。若满足条件,则再次进入循环体进行循环;否则,不进入循环体,退出循环。

Note:do-while 语句至少会把循环体执行一次; 而 while 语句的循环体可能一次都不会被执行。

四、三者区别

  1. 顺序执行时(无跳转时,比如 continue),for 和 while没啥区别。但是一旦循环体中出现 continue ,二者 可能 就会出现差异。

只是可能哈 2.2和 3.2其实和 for 也差不多,只是 2.1 和 3.1 和 for 有差异。

  1. do-while 和 while、for 循环的区别是:do-while至少会执行一次循环体(尽管初始条件不满足 “循环判断条件”),但是 while 和 for 可能一次都不执行。

1、for 循环

上面“for 循环执行顺序第 3 步”说过,for 循环每执行完一次循环体之后都会进行一次“循环迭代<3>”。执行 continue 语句之后,便是相当于 本轮 循环体执行完了(相当于直接跳到右半拉 “}”之前),本轮 continue 之后的语句不会再执行,下一步执行一次“循环迭代<3>”。

for (int i = 0; i < 10; i++) {
	if (i == 5) { // 不会死循环
		continue;
	}
	System.out.println("i = " + i);
}

输出结果如下所示:
在这里插入图片描述

2、while 循环

2.1 “循环迭代<3>”放在 continue 之后

continue 相当于提前结束 本轮 循环(相当于直接跳到右半拉 “}”之前),这里面就会跳过了 “循环迭代<3>”,所以这里会造成死循环。

int j = 0;
while (j < 10) {
	System.out.println("j = " + j);
	if (j == 5) { // 会死循环
		continue;
	}
	j++; // 在 continue 之后
}

输出如下所示:
在这里插入图片描述

2.2 “循环迭代<3>”放在 continue 之前

若把“循环迭代<3>”放到 continue 之前,不会造成死循环。此时,功能类似于 for 循环,只是“循环迭代<3>”和执行顺序和 for 不一样而已。

int k = 0;
while (k < 10) {
	k++; // 在 continue 之前
	if (k == 5) {
		continue;
	}
	System.out.println("k = " + k);
}

输出结果如下所示:
在这里插入图片描述

3、do-while 循环

3.1 “循环迭代<3>”放在 continue 之后

同2.1 “循环迭代<3>”放在 continue 之后

int l = 0;
do {
	System.out.println("l = " + l);
	if (l == 5) { //此时会死循环
		continue;
	}
	l++; // 在 continue 之后
} while (l < 10);

输出结果如下:
在这里插入图片描述

3.2 “循环迭代<3>”放在 continue 之前

同2.2 “循环迭代<3>”放在 continue 之前

int l = 0;
do {
	l++; // 在 continue 之前
	if (l == 5) {
		continue;
	}
	System.out.println("l = " + l);
} while (l < 10);

在这里插入图片描述

3.3 do-while 至少执行一次

do-while 先执行一次循环体后,在判断“循环判断条件<2>”

这里 初始条件 m =123,显然不满足 “循环判断条件<2>” m < 0。但是,do-while仍然会执行一次。

int m = 123;
do {
	System.out.println("m = " + m);
} while (m < 0);

输出结果如下:
在这里插入图片描述

最后

以上就是迷人小松鼠为你收集整理的while、do-while 和 for 循环的区别一、for 循环执行顺序二、while 循环执行顺序三、do-while 循环执行顺序四、三者区别的全部内容,希望文章能够帮你解决while、do-while 和 for 循环的区别一、for 循环执行顺序二、while 循环执行顺序三、do-while 循环执行顺序四、三者区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(79)

评论列表共有 0 条评论

立即
投稿
返回
顶部