前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础知识讲解(五)循环结构

Java基础知识讲解(五)循环结构

作者头像
徐建国
发布2021-08-03 15:27:10
4390
发布2021-08-03 15:27:10
举报
文章被收录于专栏:个人路线个人路线

循环结构分两大类,一类是当型,一类是直到型。

当型:

当布尔表达式条件为true时,反复执行某语句,当布尔表达式的值为false时才停止循环,比如:while与for循环。

直到型:

先执行某语句, 再判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,比如do-while循环。

while循环

代码语言:javascript
复制
while (布尔表达式) {    循环体;    }

在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。

语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。

代码语言:javascript
复制
package javastart;
/**
 * while循环结构:求1到100之间的累加和
 * @author 玖点夜谈
 *
 */
public class Test06 {

public static void main(String[] args) {
int  i = 0;
int  sum = 0;
// 1+2+3+…+100=?
while (i <= 100) {
            sum += i;//相当于sum = sum+i;
            i++;
        }
        System.out.println("Sum= " + sum);

  }

}

do-while循环

do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-while循环的循环体至少执行一次。

代码语言:javascript
复制
package javastart;
/**
 * do-while循环结构:1-100之间的累加和
 * @author 玖点夜谈
 *
 */
public class Test07 {

  public static void main(String[] args) {
    
     int i = 0;
          int sum = 0;
          do {
              sum += i; // sum = sum + i
              i++;
          } while (i <= 100);//此处的;不能省略
          System.out.println("Sum= " + sum);
  }

}

while 与do while区别

代码语言:javascript
复制
package javastart;
/**
 * while与do-while的区别
 * @author 玖点夜谈
 *
 */
public class Test04 {

public static void main(String[] args) {
int a = 0;
while (a < 0) {
              System.out.println(a);
              a++;
          }
          System.out.println("-----");
//do-while循环:先执行再判断
          a = 0;
do {
              System.out.println(a);
              a++;
          } while (a < 0);

  }

}

从运行效图中可以看出do-while总是保证循环体至少会被执行一次!

for循环

语法结构

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。

A. 初始化部分设置循环变量的初值

B. 条件判断部分为任意布尔表达式

C. 迭代因子控制循环变量的增减

for循环在执行条件判定后,先执行的循环体部分,再执行步进。

代码语言:javascript
复制
package javastart;
/**
 * for循环
 * @author 玖点夜谈
 *
 */
public class Test03 {

public static void main(String[] args) {
int sum = 0;
//1.求1-100之间的累加和
for (int i = 0; i <= 100; i++) {
              sum += i;
          }
          System.out.println("Sum= " + sum);
//2.循环输出9-1之间的数
for(int i=9;i>0;i--){
              System.out.print(i+"、");
          }
          System.out.println();
//3.输出90-1之间能被3整除的数
for(int i=90;i>0;i-=3){
              System.out.print(i+"、");
          }
          System.out.println();
  }

}

Java里能用到逗号运算符的地方屈指可数,其中一处就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,我们可以使用一系列由逗号分隔的表达式,而且那些表达式均会独立执行

代码语言:javascript
复制
for(int i = 1, j = i + 10; i < 5; i++, j = i * 2) {
            System.out.println("i= " + i + " j= " + j);
  1. 无论在初始化还是在步进部分,语句都是顺序执行的。
  2. 尽管初始化部分可设置任意数量的定义,但都属于同一类型。

3.约定:只在for语句的控制表达式中写入与循环变量初始化,条件判断和迭代因子相关的表达式。

初始化部分、条件判断部分和迭代因子可以为空语句,但必须以“;”分开,

代码语言:javascript
复制
for ( ; ; ) {    // 无限循环: 相当于 while(true)
              System.out.println("2020玖点夜谈启航");

编译器将while(true)与for(;;)看作同一回事,都指的是无限循环。

在for语句的初始化部分声明的变量,其作用域为整个for循环体,不能在循环外部使用该变量

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 明天也要加油呀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档