〔003〕Java 基础之流程控制

▷ 流程控制之if分支

  • if 用来做逻辑分支的,判断不同逻辑范围时执行不同的代码段,主要有下面三种格式
  • 格式一:if(条件表达式) { 代码逻辑 } 是用来执行符合条件的代码逻辑
  • 格式二:if(条件表达式) { 代码逻辑1 } else { 代码逻辑2 } 是用来执行成立和不成立的代码逻辑
  • 格式三:if(条件表达式1) { 代码逻辑1 } else if(条件表达式2) { 代码逻辑2 } else { 代码逻辑3 } 是用来执行多个不同条件下的代码逻辑

if分支

▷ 流程控制之switch分支

  • switch 分支和 if 的区别是 switch 只能对比确定值,而 if 是可以判断某个范围内的值是否符合条件
  • 所以 if 其实要比 switch 更强大,但是对于多条件 switch 分支看起来更加的一目了然

switch分支

▷ switch分支之break穿透

  • switch 中每个判断中不能忘记写 break,不然会出现穿透现象
  • 也就是会直接执行下一个判断中的代码,直至遇到 break 才会跳出分支
  • 但是有时候如果多个分支中执行的代码是一样的,可以通过该方法减少代码量,看起来更加的简洁

break穿透

▷ 流程控制之for循环

  • 循环是在代码中控制一段代码执行多次的一种方法,主要有 for循环while循环do-while循环
  • for循环的格式: for (初始化语句; 循环条件; 迭代语句) { 重复执行的代码 }
  • 比如打印 5次 的输出语句,如下

for循环

▷ 流程控制之while循环

  • while 循环跟 for 循环其实功能完全是一样的,两者都能解决同样的循环问题
  • 但是有一点细微的区别就是,如果知道要循环几次,推荐使用 for循环;如果不知道要循环几次,推荐使用 while循环
  • while循环的格式: while (循环条件) { 重复执行的代码; 迭代语句; }

while循环

▷ 流程控制之while循环案例

  • 可能上面并不能体会到与 for循环的区别,那么可以做一个案例
  • 案例:世界最高山峰珠穆朗玛峰高度是:8848.86米=8848860毫米,假如我有一张足够大的纸,它的厚度是0.1毫米。请问: 该纸张折叠多少次,可以折成珠穆朗玛峰的高度?
  • 可以知道,一开始并不知道究竟要折多少次,才能达到要求,这时候就可以使用 while循环 来解答这道题
  • 纸张 每折叠一次厚度加一倍,然后厚度超过山峰退出循环即可
package tiny.geeker;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        int count = 0; // 定义折叠次数
        double thickness = 0.1; // 定义纸张厚度

        while (thickness < 8848860) {
    
    
            thickness *= 2; // 每折叠一次,厚度加一倍
            count++;
        }

        System.out.println("总共需要次数为:" + count);
    }
}

while循环案例

▷ 流程控制之do-while循环

  • do-while循环while循环 的区别其实就一点, while循环 因为循环条件在前面,所以会先判断循环条件再执行循环体里面的代码,而 do-while循环 刚好相反,是先执行循环体后判断条件
  • do-while循环的格式: do { 重复执行的代码; 迭代语句; } while (循环条件)
package tiny.geeker;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        int i = 0;
        do {
    
    
            System.out.println("飞兔小哥");
            i++;
        } while (i < 5);
    }
}

do-while循环

▷ 死循环

  • 死循环: 就是循环条件写成了恒成立的时候,导致程序一直运行无法停下来的情况
  • 死循环 很容易造成内存泄漏,系统卡死等各种情况,所以谨慎使用 死循环
  • 由于条件恒成立,相当于写成了 2 > 1,这种恒成立的情况也可以直接写成 true

死循环
死循环

▷ 循环嵌套

  • 循环嵌套: 是在循环中包含了另一套循环
package tiny.geeker;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        for (int i = 1; i <= 5; i++) {
    
    
            for (int j = 1; j <= 2 * i - 1; j++) {
    
    
                System.out.print("*");
            }
            System.out.println(" ");
        }
    }
}

循环嵌套

▷ 循环关键字break和continue

  • 在上面 switch 分支的时候,可以看到分支体有 break 关键字,是用来跳出分支的,在循环中使用 break 也就为了跳出循环体的
  • break: 直接跳出所有循环
  • continue: 循环有很多次,仅仅跳过当前这一次,直接执行下一次的循环
package tiny.geeker;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        int i = 0;
        while (i < 5) {
    
    
            i++;
            if (i >= 3) break; // 大于3就跳出所有循环
            System.out.println("飞兔小哥" + i);
        }

        System.out.println("---------------------");

        int j = 0;
        while (j < 5) {
    
    
            j++;
            if (j == 3) continue; // 跳出3的循环
            System.out.println("飞兔小哥" + j);
        }
    }
}

循环关键字

▷ 随机数Random

  • 随机数是官方提供的API,就是随机给你返回一个值,通常像在抽奖这种随机事件中使用的比较多
  • 比如公司有5个人,奖品有一、二、三等奖,用户随机抽取奖品
package tiny.geeker;

import java.util.Random;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        for (int i = 1; i <= 5; i++) {
    
    
            Random r = new Random();

            int level = r.nextInt(3) + 1;

            System.out.println("用户" + i + "获得奖品等级:" + level);
        }
    }
}

随机数使用

▷ 随机数Random注意点

  • 可以看到在使用 new Random() 中的方法时,使用的是 nextInt() 这个方法是随机返回一个整数,如果填写了参数,就会返回[0, 参数)之间的整数值,不包括参数本身,所以后面要加上1
  • 当然除了 nextInt() 方法,还有 nextFloat()nextBoolean()nextDouble() 方法可以使用,看字面意思就知道是随机返回浮点数、布尔值、小数的
  • 案例:如何获得 65-91之间的数?

随机数案例

猜你喜欢

转载自blog.csdn.net/weixin_41635750/article/details/134376890
今日推荐