[JavaSE] 逻辑控制(while、for、do while、break、continue)

举报
Nick_Bears 发表于 2022/04/03 00:18:13 2022/04/03
【摘要】 疫情当前,大家要做好防护哦。 带好口罩了嘛? 那么大家跟着Nick来学习今天的知识!

 目录

循环结构

while 循环

💬 基本语法格式

📝 代码示例1: 打印 1 - 10 的数字

📝 代码示例2: 计算 1 - 100 的和

📝 代码示例3: 计算 5 的阶乘

📝 代码示例4: 计算 1! + 2! ... + 5!

🔻注意事项

break

continue

for 循环

💬 基本语法

📝 代码示例1: 打印 1 - 10 的数字

📝 代码示例2: 计算 1 - 100 的和

📝 代码示例3: 计算 5 的阶乘

📝 代码示例4: 计算 1! + 2! ... + 5!

🔻注意事项 (和while循环类似)

do while 循环(选学)

💬 基本语法

📝 代码示例: 打印 1 - 10


   

疫情当前,大家要做好防护哦。

带好口罩了嘛?

那么大家跟着Nick来学习今天的知识!

   

循环结构

while 循环

   

💬 基本语法格式

        while(循环条件){
            循环语句;
        }

🔴 循环条件为 true, 则执行循环语句; 否则结束循环

  

📝 代码示例1: 打印 1 - 10 的数字

        int num = 1;
        while (num <= 10) {
            System.out.println(num);
            num++;
        }

  

📝 代码示例2: 计算 1 - 100 的和

        int n = 1;
        int result = 0;
        while (n <= 100) {
            result += n;
            n++;
        }
        System.out.println(num);
       // 执行结果
        5050

   

📝 代码示例3: 计算 5 的阶乘

        int n = 1;
        int result = 1;
        while (n <= 5) {
            result *= n;
            n++;
        }
        System.out.println(num);
    // 执行结果
        120

        

📝 代码示例4: 计算 1! + 2! + 3! + 4! + 5!

        int num = 1;
        int sum = 0;
   // 外层循环负责求阶乘的和
        while (num <= 5) {
            int factorResult = 1;
            int tmp = 1;
            // 里层循环负责完成求阶乘的细节. 
            while (tmp <= num) {
                factorResult *= tmp;
                tmp++;
            }
            sum += factorResult;
            num++;
        }
        System.out.println("sum = " + sum);

   

🔴 这里我们发现, 当一个代码中带有多重循环的时候, 代码的复杂程度就大大提高了. 而比较复杂的代码就更容易出错。 后面我们会采用更简单的办法来解决这个问题。

    

🔻注意事项

  1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }。
  2. 和 if 类似, while 后面的 { 建议和 while 写在同一行。
  3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行。

   

🔴 此时 为 while 的语句体(这是一个空语句), 实际的 { } 部分和循环无关. 此时循环条件 num <= 10 恒成立, 导致代码 死循环 了。

    


    

break

🔵 break 的功能是让循环提前结束。

    

📝 代码示例: 找到 100 - 200 中第一个 3 的倍数

        int num = 100;
        while (num <= 200) {
            if (num % 3 == 0) {
                System.out.println("找到了 3 的倍数, 为:" + num);
                break;
            }
            num++;
        }
        // 执行结果
        找到了 3 的倍数, 为:102

      

🔵 执行到 break 就会让循环结束


   

continue

🔴 continue 的功能是跳过这次循环, 立即进入下次循环。

   

📝 代码示例: 找到 100 - 200 中所有 3

        int num = 100;
        while (num <= 200) {
            if (num % 3 != 0) {
                num++; // 这里的 ++ 不要忘记! 否则会死循环. 
                continue;
            }
            System.out.println("找到了 3 的倍数, 为:" + num);
            num++;
        }

   

🔴 执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句。

        

for 循环

   

💬 基本语法

        for(表达式1;表达式2;表达式3){
            循环体;
        }

    

💠 表达式1: 用于初始化循环变量.

💠 表达式2: 循环条件

💠 表达式3: 更新循环变量


🔵 相比于 while 循环, for 循环将这三个部分合并在一起, 写代码时不容易遗漏

   

📝 代码示例1: 打印 1 - 10 的数字

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

    

📝 代码示例2: 计算 1 - 100 的和

        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        System.out.println("sum = " + sum);
       // 执行结果
        5050

   

📝 代码示例3: 计算 5 的阶乘

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

   

📝 代码示例4: 计算 1! + 2! + 3! + 4! + 5!

        int sum = 0;
        for (int i = 1; i <= 5; i++) {
            int tmp = 1;
            for (int j = 1; j <= i; j++) {
                tmp *= j;
            }
            sum += tmp;
        }
        System.out.println("sum = " + sum);

   

🔻注意事项 (和while循环类似)

  1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句。 建议还是加上 { }
  2. 和 if 类似, for 后面的 { 建议和 while 写在同一行。
  3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行。

     

do while 循环(选学)

   

💬 基本语法

        do{
            循环语句;
        }while(循环条件);

   

🔴 先执行循环语句, 再判定循环条件

  

📝 代码示例: 打印 1 - 10

        int num = 1;
        do {
            System.out.println(num);
            num++;
        } while (num <= 10)

   

🔻 注意事项

  1. do while 循环最后的分号不要忘记。
  2.  一般 do while 很少用到, 更推荐使用 for 和 while。



          

大概逻辑控制就这些内容啦!

还剩下输入输出没有具体讲,

接下来练练手趴。

     

1. 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
2. 判定一个数字是否是素数
3. 打印 1 - 100 之间所有的素数
4. 输出 1000 - 2000 之间所有的闰年
5. 输出乘法口诀表
6. 求两个正整数的最大公约数
7. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
8. 编写程序数一下 1到 100 的所有整数中出现多少个数字9。
9. 求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本
身,如;153=1+5+3?,则153是一个“水仙花数”。)
10. 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输
入,最多输入三次。三次均错,则提示退出程序
11. 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1
12. 获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
13. 输出一个整数的每一位.
14. 完成猜数字游戏

点我查看答案(3.23公布)

      



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。