专栏首页SAMshareJavaNote[005] - 循环结构

JavaNote[005] - 循环结构

1 while循环

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

while( 布尔表达式 ) {
  //循环内容
}

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

2 do-while循环

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

do {
       //代码语句
}while(布尔表达式);

3 for循环

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

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

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

/**
 * 测试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:打印矩阵

// 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乘法表

// 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的栗子:

 /**
 * 测试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外循环。

/**
 * 测试带标签的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");
        }
    }
}

本文分享自微信公众号 - SAMshare(gh_8528ce7b7e80),作者:Samshare

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JavaNote[004] - 选择结构

    这个也很好理解,其语法结构为:if(布尔表达式){语句块1} else {语句块2}

    Sam Gor
  • JavaNote[002] - 基本数据类型

    char类型用来表示在Unicode编码表中的字符,它占2个字节,可允许有65535个字符,通常用从 '\u0000' 到 '\uFFFF'之间的十六进制值来表...

    Sam Gor
  • 【LeetCode03】查找字符串最长公共前缀

    这道题主要考核的还是python的zip和set的用法,如果对这两个熟悉的话就可以很容易的实现。

    Sam Gor
  • HDU-6008-Worried School

    ACM模版 描述 ? 题解 简单的模拟题,题意不是特别容易翻译,但是模拟的规则十分简单,和 WFWF 晋级资格相似,大致是一共 X+Y=GX + Y = G 个...

    f_zyj
  • P1538 迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会。 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列。 为了配合每...

    attack
  • 来个鹅厂C语言面试题试试手?

    (a+1) 就是 a[1] , *(ptr-1) 就是 a[4] ,因此执行结果为 2 , 5。

    7089bAt@PowerLi
  • 130. 被围绕的区域 Krains 2020-08-11 10:50:01 并查集DFS

    从边缘的'O'出发,用dfs将所有与边缘相邻的'O'改成'A',未与边缘相邻的'O'将不会改变,然后遍历矩阵,将所有的'A'改成'O',所有的'O'改成'X'

    Krains
  • 当构造方法参数过多时使用builder模式

    静态工厂和构造方法都有一个限制:它们不能很好地扩展到很多可选参数的情景。请考虑一个代表包装食品上的营养成分标签的例子。这些标签有几个必需的属性——每次建议的摄入...

    海仔
  • 彻底理解C/C++指针

    彻底理解C++指针.pdf 推荐阅读pdf版本,原因是从WPS复制粘贴到ChinaUnix后格式有些丢了。

    一见
  • Java 语言中十大“坑爹”功能!

    来源:https://www.sohu.com/a/357927861_115128

    程序猿DD

扫码关注云+社区

领取腾讯云代金券