JavaNote[005] - 循环结构

2020-06-04 15:49:58 浏览数 (1)

1 while循环

这个简单,其循环结构为:

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

当布尔表达式为True,就会一直循环执行下去的。它是先判断再执行循环内容的。

2 do-while循环

而do-while,就是先执行再判断的,所以循环至少被执行一次,其结构为:

代码语言:javascript复制
do {
       //代码语句
}while(布尔表达式);

3 for循环

for循环用的是最频繁的了,其结构为:

代码语言:javascript复制
for(初始化; 布尔表达式; 更新) {
    //代码语句
}

这个比较常用了,我们可以简单来写一个栗子:

代码语言:javascript复制
/**
 * 测试for循环
 */
public class TestFor {
    public static void main(String[] args) {
        // 计算 1 2 3 4 。。。 100 = ?
      int sum = 0;
      for(int i=1;i<=100;i  ){
          sum = sum   i;
        }
      System.out.println(sum);
    }
}

4 嵌套循环

这个算是一个比较高级一点的用法了,就是在一个循环语句里再嵌套一个循环语句。这个其实也没什么,可以通过看几个小栗子来理解一下。

case1:打印矩阵
代码语言:javascript复制
// case1:打印矩阵
public class TestWhileqiantao {
    public static void main(String[] args) {
        for(int i=1;i<=5;i  ){
            for(int j=1;j<=5;j  ){
                System.out.print(i "t");
            }
            System.out.println();
        }
    }
}
case2:打印99乘法表
代码语言:javascript复制
// case2:打印99乘法表
public class TestWhileqiantao {
    public static void main(String[] args) {
        for(int i=1;i<10;i  ){
            for(int j=1;j<=i;j  ){
                System.out.print(j "*" i "=" i*j "t");
            }
            System.out.println();
        }
    }
}

5 break语句和continue语句

这两个用的也是很多的,可以先了解一下他们的作用。

break:用于强制退出循环,不执行循环中剩余的语句
continue:跳过本次循环后续未执行的内容,直接进入下一次循环

break很好理解,我下面放一个continue的栗子:

代码语言:javascript复制
 /**
 * 测试continue
 */
public class TestContinue {
    public static void main(String[] args) {
        // 把 100-150之间不能被3整除的数字输出,并且每行输出5个
        int h = 0; //计数器
        for(int i = 100;i<=150;i  ){
            if(i%3==0){
                continue;
            }
            System.out.print(i "t");
            h  ;
            if(h%5==0){
                System.out.println();
            }
        }
    }
}

这里还有一种类似于 goto的用法,那就是“带标签的”break和continue。它一般可以用来实现从内循环跳到指定的外循环,可以看看下面的栗子,就是从 outer内循环跳到 outer外循环。

代码语言:javascript复制
/**
 * 测试带标签的continue
 */
public class TestLabelContinue {
    public static void main(String[] args) {
        // 打印101-150的质数
        // 质数的意思指的是除了被1和自身整数而不能被任何其他整数整除的数字
        outer:for(int i=101;i<=150;i  ){
            for(int j=2;j<i/2;j  ){ //只需要执行 i/2 次,大于i/2的结果都小于1,肯定不能被整除的
                if(i%j==0){
                    continue outer;
                }
            }
            System.out.print(i "t");
        }
    }
}

0 人点赞