> 文档中心 > [JavaSE] 逻辑控制(二)

[JavaSE] 逻辑控制(二)


目录

循环结构

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 个 112. 获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。13. 输出一个整数的每一位.14. 完成猜数字游戏

点我查看答案(3.23公布)