三、循环语句

循环语句

今日目标:

  • 能够理解循环语句的四个组成部分
  • 能够知道三种循环的各自格式和执行流程
  • 能够知道三种循环的区别
  • 能够使用循环语句完成今日案例
  • 能够知道跳转语句的使用场景

1:for循环结构

来,继续啊,下面我们来学习循环结构语句,循环结构有三种语句,分别是:

  1. for循环
  2. while循环
  3. do…while循环

这三种循环可以做相同的事情,当然它们也有小的区别,至于它们的应用及区别,我们后面会详细讲解。这里我们来学习for循环

1.1 for循环结构

而在讲解for循环格式之前,我们先来看一下前面我们讲过的一个内容:这段代码的作用,是用来展示手机信息1000次。

1640073651324

还提到了这里的几个部分,分别是定义变量,条件判断,控制变量的变化,展示手机信息(可能被多次执行)

而for循环语句也是由这几部分组成。

格式:

1640073732761

格式说明:

  • 初始化语句:这里可以是一条或者多条语句,这些语句用来完成初始化操作(int i=1)
  • 条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体语句(i<=1000)
  • 循环体语句:这里可以是任意语句,这些语句可能被多次执行(展示手机信息)
  • 条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果(i+=1)

范例:

1640073846544

执行流程:

1640073898317

知道了for循环的格式和执行流程后,下面我们到IDEA中去演示一下:

/*
    for循环结构
 */
public class ForDemo {
    public static void main(String[] args) {
        for(int i=1; i<=5; i+=1) {
            System.out.println("HelloWorld");
        }
    }
}

代码演示后,通过Debug查看了一下程序的执行流程,让我们更清晰for循环的执行流程。

讲解完毕后,大家赶快动手练习一下吧。

1.2 案例1(输出数据)

需求:在控制台输出1-5的数据

首先,我们来简单的分析一下:

分析:

① 反复进行输出的动作,使用循环结构

② 从1开始到5结束,设置初始化从1开始

③ 从1开始到5结束,设置判断条件为没有到5的时候继续执行,执行到超过5程序结束

④ 从1到5,每次增加1,设置条件控制每次+1

⑤ 将反复进行的事情写入循环结构内部,打印对应数据

分析完毕之后,我们到IDEA中去实现一下:

/*
    需求:在控制台输出1-5的数据
 */
public class ForTest01 {
    public static void main(String[] args) {
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(4);
        System.out.println(5);
        System.out.println("--------------");

        for (int i = 1; i <= 5; i += 1) {
            System.out.println(i);
        }
        System.out.println("--------------");

        for (int i = 1; i <= 5; i += 2) {
            System.out.println(i);
        }
        System.out.println("--------------");

        //自增运算符:++
        //它跟在变量的后面表示变量的值+1
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
        }
        System.out.println("--------------");

        for (int i = 1; i <= 5; i++,i++) {
            System.out.println(i);
        }
        System.out.println("--------------");

        //我要获取数据5-1该怎么办呢?
        for (int i=5; i>=1; i-=1) {
            System.out.println(i);
        }
        System.out.println("--------------");

        for (int i=5; i>=1; i--) {
            System.out.println(i);
        }

    }
}

在讲解的过程中,我们还提出了自增运算符:++和自减运算符:–,并且演示了如何获取数据5-1。

讲解完毕后,大家赶快动手练习一下吧。

1.3 案例2(求和思想)

需求:求1-5之间的数据和,并把求和结果在控制台输出

首先,我们先到IDEA中去实现一下,然后再回来总结。

/*
    需求:求1-5之间的数据和,并把求和结果在控制台输出
 */
public class ForTest02 {
    public static void main(String[] args) {
        //定义一个求和变量,用于保存求和的结果
        int sum = 0;

        //我们通过for循环实现获取数据1-5
        for (int i=1; i<=5; i++) {
            //i,1,2,3,4,5
//            sum = sum + i;
            sum += i;
            /*
                第一次求和:sum = sum + i = 0 + 1 = 1
                第二次求和:sum = sum + i = 1 + 2 = 3
                第三次求和:sum = sum + i = 3 + 3 = 6
                第四次求和:sum = sum + i = 6 + 4 = 10
                第五次求和:sum = sum + i = 10 + 5 = 15
             */
        }

        //输出结果
        System.out.println("1-5的求和结果是:" + sum);
    }
}

最后,我们来总结一下求和思想的实现步骤:

实现步骤:

① 求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0

② 从1开始到5结束的数据,使用循环结构完成

③ 将反复进行的事情写入循环结构内部

​ 此处反复进行的事情是将数据 i 加到用于保存最终求和的变量 sum 中

④ 当循环执行完毕时,将最终数据打印出来

讲解完毕后,大家赶快动手练习一下吧。

1.4 案例3(求偶数和)

需求:求1-100之间的偶数和,并把求和结果在控制台输出

首先,我们来简单的分析一下:

分析:

① 对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同

② 对1-100的偶数求和,需要对求和操作添加限制条件

③ 限制条件是偶数才参与运算,因此条件应该是判断是否是偶数

④ 当循环执行完毕时,将最终数据打印出来

分析完毕之后,我们到IDEA中去实现一下:

/*
    需求:求1-100之间的偶数和,并把求和结果在控制台输出
 */
public class ForTest03 {
    public static void main(String[] args) {
        //1:求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
        int sum = 0;

        //2:对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同
        for (int i=1; i<=100; i++) {
            //3:对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数
            if(i % 2 == 0) {
                sum += i;
            }
        }

        //4:当循环执行完毕时,将最终数据打印出来
        System.out.println("1-100之间的偶数和是:" + sum);
    }
}

讲解完毕后,大家赶快动手练习一下吧。

1.5 案例4(水仙花数)

需求:在控制台输出所有的“水仙花数”

看到这个需求,我们首先要解决的问题就是,什么样的数据是“水仙花数”?它满足如下两个条件:

① 水仙花数是一个三位数

比如:111 222 333 370 371 520 999

② 水仙花数的个位、十位、百位的数字立方和等于原数

比如:

1640074609320

知道了什么是水仙花数后,我们再来回顾一下如何获取一个数据的个位,十位,百位:

假设一个三位数为x,则

  • 个位:x%10
  • 十位:x/10%10
  • 百位:x/100%10

了解了水仙花数相关的基础知识后,下面我们来说一下这个案例的实现步骤:

实现步骤:

① 获取三位数,通过循环实现

② 获取每一个三位数的个位,十位,百位

③ 判断该三位数是否是水仙花数

④ 输出水仙花数

知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:在控制台输出所有的“水仙花数”
 */
public class ForTest04 {
    public static void main(String[] args) {
        //1:获取三位数,通过循环实现
//        for (int i=100; i<=999; i++) {
//
//        }

        for (int i = 100; i < 1000; i++) {
            //2:获取每一个三位数的个位,十位,百位
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;

            //3:判断该三位数是否是水仙花数
            if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) == i) {
                //4:输出水仙花数
                System.out.println(i);
            }

        }

    }
}

讲解完毕后,大家赶快动手练习一下吧。

1.6 案例5(统计思想)

需求:统计“水仙花数”一共有多少个,并在控制台输出个数

首先,我们先到IDEA中去实现一下,然后再回来总结。

/*
    需求:统计“水仙花数”一共有多少个,并在控制台输出个数
 */
public class ForTest05 {
    public static void main(String[] args) {
        //定义一个统计变量,用于数据的统计,初始化值为0
        int count = 0;

        for (int i = 100; i < 1000; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;

            if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) == i) {
//                System.out.println(i);
                //1,2,3,...
                count++;
            }
        }

        //输出水仙花的个数
        System.out.println("水仙花数一共有:" + count + "个");
    }
}

最后,我们来总结一下统计思想的实现步骤:

实现步骤:

① 定义统计变量count,初始化值为0

② 在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1

③ 输出统计变量的值

讲解完毕后,大家赶快动手练习一下吧。

1.7 案例6(回文数)

需求:输出所有五位数的回文数

看到这个需求,我们首先要解决的问题就是,什么样的数据是“回文数”?

那什么是“回文数”呢?一个数,无论是从左往右读,还是从右往左读,读起来都相同的数,叫做“回文数”

举例:

10101,12321:是回文数

12345:不是回文数

规律:

个位 = 万位

十位 = 千位

和百位无关

了解了回文数相关的基础知识后,我们来说一下这个案例的实现步骤:

实现步骤:

① 获取五位数,通过循环实现

② 获取每一个五位数的个位,十位,千位,万位

③ 判断该五位数是否是回文数

④ 输出回文数

知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:输出所有五位数的回文数
 */
public class ForTest06 {
    public static void main(String[] args) {
        //1:获取五位数,通过循环实现
        for (int i = 10000; i < 100000; i++) {
            //2:获取每一个五位数的个位,十位,千位,万位
            int ge = i % 10;
            int shi = i / 10 % 10;
            int qian = i / 1000 % 10;
            int wan = i / 10000 % 10;

            //3:判断该五位数是否是回文数
            if ((ge == wan) && (shi == qian)) {
                //4:输出回文数
                System.out.println(i);
            }
        }

        //练习:统计五位数的回文数个数,并在控制台输出个数

    }
}

在案例的最后,我们留下了一个练习,大家记得完成哦。

讲解完毕后,大家赶快动手练习一下吧。

1.8 案例7(逢七过)

需求:朋友聚会的时候可能会玩一个游戏:逢七过。

规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。

为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。

这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。

首先,我们来简单的分析一下:

分析:

① 数据的范围1-100之间,用循环很容易实现

② 要满足的条件是:数字包含7(个位是7,或者十位是7),或者是7的倍数

假如有一个数据:x

判断个位为7:x%10 == 7

判断十位为7:x/10%10 == 7

判断是7的倍数:x%7 == 0

分析完毕后,我们来说一下实现步骤:

实现步骤:

① 获取1-100之间的数据,通过循环实现

② 判断数字包含7或者是7的倍数

判断数据:要么个位是7,要么十位是7,要么能够被7整除

③ 在控制台输出满足条件的数据

知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:朋友聚会的时候可能会玩一个游戏:逢七过。
 */
public class ForTest07 {
    public static void main(String[] args) {
        //1:获取1-100之间的数据,通过循环实现
        for (int i = 1; i <= 100; i++) {
            //2:判断数字包含7或者是7的倍数(判断数据:要么个位是7,要么十位是7,要么能够被7整除)
            if ((i % 10 == 7) || (i / 10 % 10 == 7) || (i % 7 == 0)) {
                //3:在控制台输出满足条件的数据
                System.out.println(i);
            }
        }

    }
}

讲解完毕后,大家赶快动手练习一下吧。

2:while循环结构

2.1 while循环结构

接下来,我们学习while循环结构语句

格式:

1640075382732

范例:

1640075388441

知道了while循环的格式后,下面我们到IDEA中去演示一下:

/*
    while循环结构
 */
public class WhileDemo {
    public static void main(String[] args) {
        int i = 1;
        while (i<=5) {
            System.out.println("HelloWorld");
            i++;
        }
    }
}

代码演示后,通过Debug查看了一下程序的执行流程,让我们更清晰while循环的执行流程。

最后,我们再来总结一下while循环的执行流程:

执行流程:

1640075512311

讲解完毕后,大家赶快动手练习一下吧。

2.2 案例1(求奇数和)

需求:求1-100之间的奇数和,并把求和结果在控制台输出

首先,我们来简单的分析一下:

分析:

① 对1-100的奇数求和,和前面讲解的偶数求和几乎是完全一样,仅仅是判断条件不同

② 判断条件是奇数才参与运算,因此条件应该是判断是否是奇数

③ 当循环执行完毕时,将最终数据打印出来

分析完毕之后,我们到IDEA中去实现一下:

/*
    需求:求1-100之间的奇数和,并把求和结果在控制台输出
 */
public class WhileTest01 {
    public static void main(String[] args) {
        //定义求和变量,初始化值为0
        int sum = 0;

        //获取1-100之间的数据
//        int i = 1;
//        while (i<=100) {
//            //判断数据是否是奇数
            if(i%2 != 0) {
                sum += i;
            }
//
//            if(i%2 == 1) {
//                sum += i;
//            }
//
//            i++;
//        }

        int i = 1;
        while (i <= 100) {
            sum += i;
            i += 2; //1,3,5,7...99,101
        }

        //输出结果
        System.out.println("1-100之间的奇数和是:" + sum);
    }
}

讲解完毕后,大家赶快动手练习一下吧。

2.3 案例2(珠穆朗玛峰)

需求:世界最高峰珠穆朗玛峰(8848.86m),我现在有一张足够大的纸张,厚度为:0.001m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?

首先,我们来简单的分析一下:

分析:

① 因为要反复折叠,所以要使用循环,该选for循环还是while循环呢?

<font color='red'>**小技巧:循环次数明确,使用for循环;循环次数不明确,使用while循环**</font>

这里不知道折叠多少次,这种情况下更适合使用while循环

② 纸张每折叠一次,厚度加倍,因此要先定义纸张厚度,在循环中使厚度加倍

③ 什么时候就停止折叠了呢?直到纸张的厚度大于等于珠峰的高度,反言之,就要折叠

④ 要求的是统计折叠次数,所以会用到统计思想

分析完毕后,我们来说一下实现步骤:

实现步骤:

① 定义统计变量,初始化值为0

② 定义纸张厚度变量和珠峰高度变量

③ 用while循环实现反复折叠,判断条件是纸张厚度小于珠峰高度

④ 循环体中要做两件事情:一是纸张厚度加倍,二是统计变量+1

⑤ 当循环结束,输出统计变量的值

知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:世界最高峰珠穆朗玛峰(8848.86m),我现在有一张足够大的纸张,厚度为:0.001m。
         请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
 */
public class WhileTest02 {
    public static void main(String[] args) {
        //1:定义统计变量,初始化值为0
        int count = 0;

        //2:定义纸张厚度变量和珠峰高度变量
        double paper = 0.001;
        double zf = 8848.86;

        //3:用while循环实现反复折叠,判断条件是纸张厚度小于珠峰高度
        while (paper < zf) {
            //4:循环体中要做两件事情:一是纸张厚度加倍,二是统计变量+1
            paper *= 2;

            count++;
        }

        //5:当循环结束,输出统计变量的值
        System.out.println("要折叠" + count + "次");
    }
}

讲解完毕后,大家赶快动手练习一下吧。

3:do-while循环结构

3.1 do-while循环结构

接下来,我们学习do-while循环结构语句

格式:

1640075827408

范例:

1640075834623

知道了do-while循环的格式后,下面我们到IDEA中去演示一下:

/*
    do...while循环结构
 */
public class DoWhileDemo {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println("HelloWorld");
            i++;
        } while (i<=5);
    }
}

代码演示后,通过Debug查看了一下程序的执行流程,让我们更清晰do-while循环的执行流程。

最后,我们再来总结一下do-while循环的执行流程:

执行流程:

1640075933445

讲解完毕后,大家赶快动手练习一下吧。

3.2 三种循环的区别

前面我们讲解了三种循环语句的格式和执行流程,下面我们来讲解这三种循环语句的区别。

而关于这三种循环语句的区别,我们先到IDEA中去讲解,然后再回来总结:

/*
    三种循环的区别
 */
public class LoopTest {
    public static void main(String[] args) {
//        //for循环
//        for (int i = 3; i < 3; i++) {
//            System.out.println("我爱Java");
//        }
//        System.out.println("--------");
//
//        //while循环
//        int j = 3;
//        while (j < 3) {
//            System.out.println("我爱Java");
//            j++;
//        }
//        System.out.println("--------");
//
//        //do...while循环
//        int k = 3;
//        do {
//            System.out.println("我爱Java");
//            k++;
//        } while (k < 3);

//        //for循环
//        for (int i = 1; i < 3; i++) {
//            System.out.println("我爱Java");
//        }
        System.out.println(i);
//        System.out.println("--------");
//
//        //while循环
//        int j = 1;
//        while (j < 3) {
//            System.out.println("我爱Java");
//            j++;
//        }
//        System.out.println(j);
//        System.out.println("--------");

        //死循环
//        for (;;) {
//            System.out.println("for...");
//        }

//        while (true) {
//            System.out.println("while...");
//        }

        do {
            System.out.println("do...while...");
        } while (true);

    }
}

讲解完毕后,回到资料,我们总结一下:

三种循环语句的区别:

for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)

do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for和while的区别:

条件控制语句所控制的自增变量,在for循环结束后,就不可以继续使用

条件控制语句所控制的自增变量,在while循环结束后,还可以继续使用

死循环格式:

for(;😉{}

while(true) {}

do{}while(true);

由于循环语句的区别,只是大家需要理解的知识点,故这里不需要练习,我们在后面的使用中,在慢慢体会即可。

4:continue和break

4.1 continue和break

来,继续啊,下面我们来学习跳转控制语句,为了讲解跳转控制语句,这里我们给出几个场景看一看:

场景一:周一到周五上班,周六日不上班

1640076292000

场景二:成人后一直工作到60岁,60岁之后就可以退休养老了

1640076323917

刚才的场景中,重点介绍了两个跳转关键字:

  • continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
  • break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环

了解了这两个跳转关键字之后,下面我们到IDEA中去体验一下:

/*
   continue:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
   break:用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
*/
public class ControlDemo {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i % 2 == 0) {
//                continue;
                break;
            }

            System.out.println(i);
        }
    }
}

讲解完毕后,大家赶快动手练习一下吧。

4.2 综合案例(小芳存钱)

需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,

她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。

关于这个案例呢,我们到IDEA中一边分析,一边实现:

/*
    需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。
*/
public class ControlTest {
    public static void main(String[] args) {
        //小芳的妈妈每天给她2.5元钱
        double dayMoney = 2.5;

        //她都会存起来,涉及到了求和思想,定义求和变量,初始化值为0
        double sumMoney = 0;

        //存到100元钱
        int result = 100;

        //定义一个统计变量,用来纪录存钱的天数,初始化值为1
        int dayCount = 1;

        //因为不知道要多少天才能够存到100元,所以,这里我们采用死循环来实现,当存到100元的时候,通过break跳转语句让循环结束
        while (true) {
            //存钱
            sumMoney += dayMoney;

            //判断存的钱是否大于等于100了,如果是,就退出循环
            if(sumMoney >= result) {
                break;
            }

            //每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱
            if(dayCount%5 == 0) {
                sumMoney -= 6;
                System.out.println("第" + dayCount + "天花了6元");
            }

            dayCount++;
        }

        //输出统计天数的变量
        System.out.println("共花了" + dayCount + "天存了100元");
    }
}

讲解完毕后,大家赶快动手练习一下吧。

1 简答题

1.1 如果switch语句省略了break, 会出现什么现象? 请简单描述下这个现象

如果switch语句省略了break, 会出现什么现象? 请简单描述下这个现象

: 

case穿透现象

当执行完某一个case中的语句体后, 如果没有遇到break, 将会开启case穿透
这种穿透指的是, 会进行到下一个case, 继续执行语句体
直到遇见了break, 或者执行到了switch的末尾, 才会停止

1.2 0 ~ 100分 不用switch 用 if

键盘录入学生成绩, 0 ~ 100分, 根据成绩所在的区间, 打印出不同的奖励机制
对于这个需求, 你觉得应该使用 if , 还是 switch 呢 ? 请说明理由

: switch只能进行相等判断

范围的判断if语句更加合适, 因为switch来做的话, 就要从 case 0: 一直写到 case 100:  代码繁琐

1.3 简答题

现有如下代码 , 能否执行?变量的作用域

public class Demo {
    public static void main(String[] args){
        
        for(int i = 1; i <= 5; i++){
            System.out.println(i);
        }
		System.out.println(i);
    }
}
: 

结果: 代码编译出错
    
原因:for循环执行完毕后, i的变量会从内存中释放掉, 再想使用就找不到了

1.4 简答题

现有如下代码 , 统计 1 ~ 20 之间, 5的倍数有几个, 但是代码存在错误, 请说明错误原因, 并更正代码

public class Demo {
    public static void main(String[] args) {
        for (int i = 1; i <= 20; i++) {
            int count = 0;
            if(i % 5 == 0){
                count++;
            }
            System.out.println(count);
        }
    }
}
: 

1. int count = 0;  计数器变量应该定义在循环外部, 不然每一次进入循环, 都重新置为0.
    
2. System.out.println(count); 这句话是打印5的倍数有多少个, 应该放在循环结束, 因为只有循环结束了, 才算是统计完毕.
    
public class Demo {
    public static void main(String[] args) {
        
        int count = 0;
        
        for (int i = 1; i <= 20; i++) {
            
            if(i % 5 == 0){
                count++;
            }
            
        }
        
        System.out.println(count);
    }
}

1.5 简答题

现有如下代码 , 打印所有的水仙花数, 但是代码存在错误, 请说明错误原因, 并更正代码

public class Demo {
    public static void main(String[] args) {
        int i = 100;
        while(i <= 999){
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 10 / 10 % 10;
            
            if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
                System.out.println(i);
            }
            
        }
    }
}
: 

while循环中, 忘记了 i++ 所以操作的数据, 一直都是100
    
public class Demo {
    public static void main(String[] args) {
        int i = 100;
        while(i <= 999){
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 10 / 10 % 10;
            
            if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
                System.out.println(i);
            }
            
            i++;
        }
    }
}

1.6 简答题

观察以下的代码 , 下划线位置加入什么语句,可以在控制台分别打印如下内容:

7次 I Love Java

2次 I Love Java

13次 I Love Java

public class Demo {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i % 3 == 0) {
                
                ___________
            }
            System.out.println("I Love Java");
        }
    }
}
: 

7: continue
2: break
13: System.out.println("I Love Java");

2 编程题

2.1 编程题一

训练目标:循环结构的使用

**需求描述:**求1~10之间不能被3整除的数之和 ,请分别用for循环和while循环实现

public class Test01 {
    public static void main(String[] args) {
        //定义求和变量
        int sum = 0;

        //while实现
        int i = 1;
        while (i <= 10) {
        //筛选不能被3整除的数字
            if (i % 3 != 0) {
                sum += i;
            }
            i++;
        }

        //for实现
//        for (int i = 1; i <= 10; i++) {
//            //筛选不能被3整除的数字
//            if (i % 3 != 0) {
//                sum += i;
//            }
//        }
        //打印结果
        System.out.println("sum:" + sum);
    }
}

2.2 编程题二

训练目标:循环结构的使用

**需求描述:**求1~100之间所有奇数之和,并输出一共有多少个奇数,请分别用for循环和while循环实现

public class Test02 {
    public static void main(String[] args) {
        //定义计数器
        int count = 0;
        //定义求和变量
        int sum = 0;

        //while循环实现
//        int i = 1;
//        while (i <= 100){
//            //筛选奇数
//            if (i % 2 != 0) {
//                count++; //奇数
//                sum += i; //累加
//            }
//            i++;
//        }

        //for循环实现
        for (int i = 1; i <= 100; i++) {
            //筛选奇数
            if (i % 2 != 0) {
                count++; //奇数
                sum += i; //累加
            }
        }

        //打印结果
        System.out.println("sum:" + sum);
        System.out.println("count:" + count);
    }
}

2.3 编程题三

训练目标:循环结构的使用

**需求描述:**请输出1-100之间能同时被2、3、5整除的数有多少个?

public class Test03 {
    public static void main(String[] args) {
        //定义计数器
        int count = 0;
        //获取1到100的整数
        for (int i = 1; i <= 100; i++) {
            //判断
            if (i % 2 == 0 && i % 3 == 0 && i % 5 == 0) {
                count++;
            }
        }
        //打印结果
        System.out.println("count:" + count);
    }
}

2.4 编程题四

训练目标:能够使用循环, 拿到所有需要的数据, 并加入 if 筛选条件, 找出符合要求的数据

需求描述

​ 中国有闰年的说法。闰年的规则是:四年一闰,百年不闰,四百年再闰。

​ 年份能够被4整除但不能被100整除算是闰年,年份能被400整除也是闰年

​ 请打印出1988年到2022年的所有闰年年份。

实现提示

  • 1988年到2022年, 需要逐个判断每一年, 使用循环

  • 年份能够被4整除但不能被100整除算是闰年,年份能被400整除也是闰年, 代码中使用 if 语句来组织这段逻辑

    从1988开始

    是否到2022

    输出闰年 数据过滤

public class Test04 {
    public static void main(String[] args) {
        // 1、定义for循环,循环变量开始是1988,结束是2088.
        for (int year = 1988; year <= 2022; year++) {
            // 2、在循环中对年份进行判断,判读条件为:可以被4整除,并且不可以被100整除,或者可以被400整除
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                //  3、如果符合条件,输出该年份.
                System.out.println(year + "是闰年");
                /*
                    1988是闰年
                    1992是闰年
                    1996是闰年
                    2000是闰年
                    2004是闰年
                    2008是闰年
                    2012是闰年
                    2016是闰年
                    2020是闰年
                 */
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/745924.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么牌子的开放式耳机质量好?五大优质机型,新手必看!

耳机的应用场景越来越多&#xff0c;各种类型的耳机开石出现&#xff0c;开放式耳机就是其中一种。从最初的单一音效到现在的高清晰度解析&#xff0c;开放式耳机已经是非常成熟的产品。耳机不仅音质纯净&#xff0c;佩戴起来也极为舒适&#xff0c;无论你身在何处&#xff0c;…

element 问题整合

没关系&#xff0c;凡事发生必有利于我 文章目录 一、el-table 同级数据对齐及展开图标的位置问题二、el-table 勾选框为圆角及只能勾选一个 一、el-table 同级数据对齐及展开图标的位置问题 element 官方提供的扩展tree型数据在表格里默认是靠左边对齐&#xff0c;项目需求需要…

一键下单“鲜”到先得!生鲜电商小程序解决方案

随着消费者生活节奏的加快&#xff0c;以及移动互联网技术的普及&#xff0c;人们对于便捷、高效、个性化的生鲜购物体验需求日益旺盛。生鲜电商小程序以其独特的优势&#xff0c;正在改变着传统生鲜零售的格局&#xff0c;越来越多的消费者选择在线上购买生鲜食品&#xff0c;…

第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)

重要信息 会议官网&#xff1a;www.icbase.org&#xff08;查看详情&#xff09; 会议时间&#xff1a;2024年9月20-22日 会议地点&#xff1a;中国温州 截稿时间&#xff1a;以官网信息为准 收录检索&#xff1a;EI Compendex&#xff0c;Scopus稳定检索 *更多优质学术会…

PyFluent入门之旅(1)介绍及安装

ANSYS作为商业仿真的龙头&#xff0c;旗下多款产品开放了接口并支持通过Python进行调用、参数化等功能&#xff0c;这样就诞生了Python Ansys PyAnsys。 PyAnsys项目有以下产品支持&#xff1a; PyAEDT&#xff1a;AEDT 的Python接口 。PyDPF-Core&#xff1a;DPF&#xff…

低代码开发:you can you up!

在当下快节奏的科技发展时代&#xff0c;企业的竞争力已不仅仅取决于产品本身的品质&#xff0c;更需要迎合用户需求的快速迭代和创新。 而在这个背景下&#xff0c;低代码应用开发平台如JNPF快速开发平台的出现&#xff0c;正成为企业实现快速开发、敏捷创新的不二选择。 低…

【Uniapp微信小程序】图片左右分割/分割线切割图片/图片批量分割线切割

特别说明:本文章因业务组件功能,不完全开放/暂vip可见,有需要者留言找博主! ps:注意!!本效果为图片分割切割!!不是文档切割!!图片仅供参考! 效果图 父组件 / 上传图片页面(index) 写一个上传按钮即可,事件方法: uni.chooseMessageFile({extension: [".j…

Linux中安装并且配置Nginx

首先我们需要先安装c语言的编译环境&#xff0c;及正则表达式库等第三方依赖库&#xff1a; 然后我们再去下载nginx&#xff0c;方法有两种一种是在windos中直接下载jar包然后拉近Linux中安装&#xff0c;另一种是使用wget安装&#xff1a; yum install wget wget 官网里面ngi…

用友 U8+ 存货档案建档操作手册

目录 一、存货编码说明.... 1 二、基本页签.... 2 三、控制页签.... 5 四、价格成本页签.... 8 五、计划页签.... 9 六、质量页签.... 11 七、其他页签.... 13 八、小技巧.... 13 九、注意事项.... 16 存货档案建立培训文档 一、存货编码说明 编码规则 先选大类&am…

《Nest系列 - 4. 听说人人都会CRUD,可是我还不会怎么办???-《4.2结合前端使用实现CRUD》

终于到了这一步&#xff0c;今天我们就将实现一个CRUD&#xff0c;主要是编写nest 部分&#xff0c;前端部分后面可以看git 代码 下面是效果演示&#xff08;大部分是参考满哥实现&#xff0c;&#x1f923;&#x1f923;&#x1f923;&#xff09; 前期准备 前端接口处理 im…

强化学习专题:强化学习知识梳理(一)

2024/6/23&#xff1a; 前段时间有幸完成了大学期间的第一篇论文。在面试之前复盘一下关于自己论文中DQN的一些相关点。 浅谈主要区别&#xff08;在线 or 离线&#xff09; 首先&#xff0c;一切的开始是强化学习中时序差分方程&#xff0c;这体现了强化学习方法的优化策略。在…

仓库驱鸟设备,仓库专用集束强声驱鸟器

在仓库&#xff0c;鸟类活动可能带来一系列不便和隐患。例如鸟类的排泄物&#xff0c;不仅难以清理&#xff0c;而且其携带大量病菌&#xff0c;严重影响仓库的卫生环境。在鸟害频发的仓库区域&#xff0c;采取相应的驱鸟措施是非常必要的。 安装驱鸟设备&#xff0c;可以有效地…

HuatuoGPT2本地运行失败

transformer 版本不能太高 transformer<4.3.32 查看config.json文件 其实 https://huggingface.co/FreedomIntelligence/HuatuoGPT2-7B/blob/main/config.json

海南聚广众达电子商务咨询有限公司抖音电商服务专家

在当下这个数字化浪潮汹涌的时代&#xff0c;电子商务无疑是商业领域的一颗璀璨明星。而在这其中&#xff0c;抖音电商以其独特的魅力&#xff0c;吸引了无数目光。海南聚广众达电子商务咨询有限公司&#xff0c;作为抖音电商领域的佼佼者&#xff0c;以其敏锐的洞察力和卓越的…

Swift开发——简单App设计

App的界面设计需要具有大量的图像并花费大量的时间,这样的应用不方便学习和交流,这里重点介绍SwiftUI界面元素的用法,通过简单App设计过程的讲解,展示图形用户界面应用程序的设计方法。 01、简单App设计 按照9.1节工程MyCh0901的创建方法,创建一个新的工程MyCh0902,此时工…

C++STL 6大组件—你必知必会的编程利器

课程总目录 文章目录 一、vector容器二、deque和list容器三、vector、deque、list横向对比四、详解容器是配置stack、queue、priority_queue五、无序关联容器六、有序关联容器七、迭代器八、函数对象九、泛型算法和绑定器 一、vector容器 底层数据结构是动态开辟的数组&#x…

Python在Excel中设置数字格式和获取应用数字格式后的值

目录 安装Python Excel库 Python在Excel中设置数字格式 Python获取Excel中应用数字格式的单元格的显示值 总结 Excel 数字格式是用于控制单元格中数字显示方式的一组规则或代码。通过设置不同的数字格式&#xff0c;可以定义数字的显示方式&#xff0c;如小数位数、货币符号…

树形结构的勾选、取消勾选、删除、清空已选、回显、禁用

树形结构的勾选、取消勾选、删除、清空已选、回显、禁用 基本页面&#xff1a; 分为上传文件和编辑的页面 代码实现要点&#xff1a; 上传文件页面&#xff1a; 点开选择范围弹窗&#xff0c;三个radio单选框都为可选状态&#xff0c;默认显示的是第一个单选框&#xff08;按…

前端实战:实现块级元素的拖拽与缩放功能

在现代网页开发中&#xff0c;用户交互是一个非常重要的部分。在这篇文章中&#xff0c;我们将详细介绍如何使用原生 JavaScript 实现块级元素的拖拽与缩放功能。具体来说&#xff0c;我们将实现以下功能&#xff1a; 点击并拖动 outer 元素&#xff0c;可以移动整个块。点击并…

GPT-5的即将登场

人工智能领域正经历着一场前所未有的变革&#xff0c;而其中大语言模型的进步尤为瞩目。继GPT-4取得巨大成功后&#xff0c;OpenAI即将推出的GPT-5被寄予厚望。作为新一代大语言模型&#xff0c;GPT-5在各个方面都有望实现显著突破。本文将探讨GPT-5的潜在特性、应用前景以及其…