2020年11月5日星期四

Java流程控制:循环结构


一、简介

  • 顺序结构的程序语句只能被执行一次,如果您想要同样的操作执行多次,就需要使用循环结构。
  • Java中有三种主要的循环结构:
    • 'while'循环
    • 'do...while'循环
    • 'for'循环
  • 在Java5中还引入了一种主要用于数组的增强型for循环:'foreach'循环




二、'while'循环

语法:

while (/* 布尔表达式 */) { /* 循环体 */}

描述:

  • 'while'循环是Java最基本的循环。
  • 在'while'循环刚开始时,会计算一次'布尔表达式'的值,若条件为真,执行循环体,然后重复上面步骤,只要布尔表达式为'true',循环就会一直执行下去。
  • 而对于后来每一次额外的循环,都会在开始前重新计算一次判断是否为真,直到条件不成立,则'while'循环结束

注意:

  • 除了特殊要求,通常要让循环停止下来,我们需要一个让表达式失效的方式来结束循环。方式有:循环体内部控制、外部设立标志位等。
  • 循环条件一直为'true'就会造成'死循环',我们正常的业务编程中应该尽量避免死循环,会影响程序性能,甚至造成程序卡死奔溃。

示例:

/* 计算1加到100的和,结果为在控制台输出:5050 */public static void main(String[] args) { int i = 0; int sum = 0; /* i不大于100时就会一直循环 */ while (i <= 100) {  sum += i;  i++; } System.out.println(sum);}




三、'do...while'循环

语法:

do { /* 循环体 */} while (/* 布尔表达式 */);

描述:

  • 'do…while'循环和'while'循环相似,不同的是,'while'循环先判断后执行,'do...while'循环是先执行后判断。'do…while'循环即使不满足条件,也至少会执行循环体一次

注意:

  • 'do…while'循环的布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了
  • 如果布尔表达式的值为'true',则语句块一直执行,直到布尔表达式的值为'false'。

示例:

/* 结果为在控制台依次输出:5050 101 */public static void main(String[] args) { int i = 0; int sum = 0; do {  sum += i;  i++; } while (i <= 100); System.out.println(sum); do {  System.out.println(i); } while (i <= 100);}




四、'for'循环

语法:

for (/* 初始化语句 */;/* 布尔表达式 */;/* 迭代语句 */) {	/* 循环体 */}

描述:

  • 虽然所有循环结构都可以用'while'循环或者'do...while'循环表示,但Java提供了另一种语句: 'for'循环,使一些循环结构变得更加简单。
  • 'for'循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构,最常使用。
  • 'for'循环执行的次数是在执行循环体前就确定的。
  • 'for'循环在知道循环次数的情况下,简化了代码,提高了可读性。

执行顺序:

  1. 最先执行初始化语句。可以初始化同一种类型的一个或多个循环控制变量。该语句可以为空。
  2. 然后,检测布尔表达式的值。如果为'true',循环体被执行;如果为'false',循环终止。
  3. 执行一次循环体后,接着执行迭代语句,更新循环控制变量。
  4. 重复执行上面二、三两步:布尔表达式 -> 循环体 -> 迭代语句直到布尔表达式结果为'false'

示例:

/* 使用嵌套for循环在控制台打印九九乘法表 */public static void main(String[] args) { /* 外层for循环控制当前打印第几行 */ for (int i = 1; i <= 9; i++) {  /* 内层for循环控制当前这一行的输出 */  for (int j = 1; j <= i; j++) {   System.out.print(j + "*" + i + "=" + (i * j) + "\t");  }  /* 控制台打印的换行语句 */  System.out.println(); }}




五、'foreach'循环

语法:

for (/* 变量声明语句 */ : /* 数组或集合实例 */) { /* 循环体 */}

描述:

  • Java5引入了一种主要用于数组或集合的增强型'for'循环:'foreach'循环。

注意:

  • 变量声明语句:声明新的局部变量,该变量的类型必须和数组或集合的元素类型匹配。该变量的作用域限定在循环体代码块内,在每次循环中,其指向的对象为当前遍历到的数组或集合的元素
  • 数组或集合实例:指要遍历的数组或集合实例的变量名,或者是返回值为数组或集合的方法。

示例:

/* 结果为在控制台依次输出:10 20 30 40 50 */public static void main(String[] args) { int[] numbers = {10, 20, 30, 40, 50}; for (int i : numbers) {  System.out.println(i); }}




六、'break' & 'continue'关键字

Ⅰ、'break'关键字

描述:

  • 'break'关键字主要用在循环语句或者'switch'语句中,用来跳出整个语句块
  • 'break'关键字用于强行退出循环结构,不执行该循环结构中剩余的语句和剩余的循环。

注意:

  • 若有多层嵌套的循环结构,'break'关键字会跳出其所在的循环语句块,并且继续执行该循环语句块下面的语句。

示例:

/* 结果为在控制台输出了1至30 */public static void main(String[] args) { int i = 0; while (i <= 100) {  i++;  System.out.println(i);  if (i == 30) {   break;  } }}




Ⅱ、'continue'关键字

描述:

  • 'continue'关键字适用于任何Java的循环结构中,作用是让程序立刻跳转到该循环结构的下一次循环的迭代
  • 'continue'关键字用在循环体中,用于终止循环结构的某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

注意:

  • 在'for'循环中,'continue'关键字使程序立即跳转到迭代语句
  • 在'while'循环或者'do…while'循环中,'continue'关键字使程序立即跳转到布尔表达式的判断语句

示例:

/* 结果为在控制台依次输出:1 3 4 */public static void main(String[] args) { int i = 0; while (i < 4) {  i++;  if (i == 2) {   continue;  }  System.out.println(i); }}




Ⅲ、带标签的'break' & 'continue'

描述:

  • 'goto'关键字很早就在程序设计语言中出现,常用来实现条件转移, 构成循环,跳出循环体等功能。

  • 在Java中'goto'是一个保留字,但并未在Java中得到正式使用。然而,在'break'和'continue'这两个关键字的身上,我们仍然能看出一些'goto'的影子:带标签的'break' & 'continue'。

  • '标签'指后面跟一个冒号的标识符,例如:

labelName:
  • 对Java来说,唯一用到'标签'的地方是在循环结构之前。而在循环结构之前设置标签的唯一理由是:我们希望在循环结构中嵌套另一个或多个循环结构,且在内层循环结构中能够直接跳转到外层循环结构。而'break'和'continue'关键字通常只能中断当前循环结构,但若随同标签使用,它们就会中断到存在标签的地方

示例:

/* 打印100到150之间的质数,结果为在控制台依次输出:101 103 107 109 113 127 131 137 139 149 */public static void main(String[] args) { outer: for (int i = 100; i <= 150; i++) {  for (int j = 2; j < i / 2; j++) {   if (i % j == 0) {    continue outer;   }  }  System.out.println(i); }}




原文转载:http://www.shaoqun.com/a/489169.html

斑马物联:https://www.ikjzd.com/w/1316

兰亭集势:https://www.ikjzd.com/w/820

aca:https://www.ikjzd.com/w/1371


一、简介顺序结构的程序语句只能被执行一次,如果您想要同样的操作执行多次,就需要使用循环结构。Java中有三种主要的循环结构:'while'循环'do...while'循环'for'循环在Java5中还引入了一种主要用于数组的增强型for循环:'foreach'循环。二、'while'循环语法:while(/*布尔表达式
折扣网:https://www.ikjzd.com/w/74
square:https://www.ikjzd.com/w/2106
Prime Day大促临近,姐夫送给卖家"三大惊喜"!:https://www.ikjzd.com/home/2966
广州陈家祠好玩吗?在哪里?:http://tour.shaoqun.com/a/3657.html
让音乐响彻夏日夜空—2020上海夏季音乐节 :http://tour.shaoqun.com/a/55732.html

没有评论:

发表评论