JavaSE学习笔记Day03

JavaSEDay03 总结笔记

01-switch语句

  • 格式 :
switch(将要匹配的值){
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
    case 值3:
        语句体3;
        break;
        ...
    default:
        语句体n+1;
        break;
}
  • 执行流程 :
1. 拿着switch () 中的数据, 跟case给出的数据逐个进行匹配, 匹配成功, 就执行对应的语句体,再由break, 结束掉整个的switch语句.
2. 给出的所有case, 全部匹配失败, 将会执行default
  • 注意事项 :
1. case后面的值不能重复
2. case后面的值只能是常量, 不能是变量
3. switch语句, () 中可以接收的类型
        1). 基本数据类型: byte short char int
        2). 引用数据类型: jdk5开始可以是枚举, jdk7开始可以是String字符串
4. 如果省略了break, 将会开启case穿透现象    
  • switch语句案例:

    JavaSE学习笔记Day03_第1张图片

  • 示例代码:

    import java.util.Scanner;
    
    public class SwitchDemo2 {
        /*
            需求: 键盘录入一个数值, 代表星期 (1~5)打印工作日, (6~7)打印休息日
    
            情况: 发现多个case中, 存在重复的代码
    
            jdk14的新特性: switch语句中, case允许编写多个值, 中间要用逗号隔开
    
            ------------------------------------------------------------
    
            if语句和switch语句的使用选择 :
    
                if : 适用于范围的判断
                switch : 适用于固定值的匹配
         */
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个整数:");
            int week = sc.nextInt();
    
            switch (week) {
                case 1, 2, 3, 4, 5:
                    System.out.println("工作日");
                    break;
                case 6, 7:
                    System.out.println("休息日");
                    break;
                default:
                    System.out.println("您的输入有误!");
                    break;
            }
        }
    }
    

02-for循环语句

  • 目标 : 为什么要学习循环 ?
  • 回答 : 我们的代码逻辑, 有些时候需要重复的执行很多次, 就应该使用循环
  • 格式 :
for(初始化语句; 判断条件; 条件控制语句){
    循环体语句;
}

初始化语句 : 定义变量, 用这个变量来控制循环
判断条件 : 决定循环是否需要继续
循环体语句 : 要重复执行的代码逻辑
条件控制语句 : 改变控制循环的变量
  • 执行流程 :
1. 执行初始化语句, 在整个循环过程中只执行一次
2. 执行判断条件, 看其返回结果是true, false
        false : 循环结束
        true : 进入第三步
3. 执行循环体语句
4. 执行条件控制语句
5. 回到2继续

for(int i = 1; i <= 5; i++){
    System.out.println("itheima");
}
  • 示例代码:

    public class ForTest7 {
        /*
            需求: 使用*号, 在控制台打印5行直角三角形
    
                *
                **
                ***
                ****
                *****
    
                *****
                ****
                ***
                **
                *
    
            1. 打印5行5列矩形
            2. 改进为直角三角形
         */
        public static void main(String[] args) {
            // 外循环: 控制行数
            for(int i = 1; i <= 5; i++){
                // 内循环: 控制列数
                for(int j = 1; j <= i; j++){
                    System.out.print("*");
                }
                System.out.println();
            }
    
            System.out.println("-----------------------");
    
            for(int i = 5; i >= 1; i--){
                for(int j = 1; j <= i; j++){
                    System.out.print("*");
                }
                System.out.println();
            }
        }

03-while循环语句

  • 格式 :
初始化语句;
while(判断条件){
    循环体语句;
    条件控制语句;
}
1. 执行初始化语句, 在整个循环过程中只执行一次
2. 执行判断条件, 看其返回结果是true, false
        false : 循环结束
        true : 进入第三步
3. 执行循环体语句
4. 执行条件控制语句
5. 回到2继续
  • 注意 : while循环, 千万别忘了条件控制语句.
  • 示例代码:

    public class WhileTest1 {
        /*
            需求: 在控制台打印出所有的水仙花数, 要求使用while实现.
         */
        public static void main(String[] args) {
            int i = 100;
    
            while (i <= 999) {
    
                int ge = i % 10;
                int shi = i / 10 % 10;
                int bai = i / 100;
    
                if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
                    System.out.println(i);
                }
    
                i++;
            }
        }
    }
    

04-do...while循环语句 (了解)

  • 格式 :
初始化语句;
do {
    循环体语句;
    条件控制语句;
}while(判断条件);
1. 执行初始化语句
2. 执行循环体语句
3. 执行条件控制语句
4. 判断条件, 看其返回结果是true, false
        false : 循环结束
        true : 回到2继续.
        
特点: 无论判断条件是否满足, 都至少执行一次循环体.

05-三种循环的对比

  • for, while : 先判断, 后执行
  • do...while : 先执行, 后判断
for循环 : 用于控制循环的那个变量, 因为归属于for的语法结构当中, 在循环结束后, 无法继续使用

      for (int i = 1; i <= 5; i++) {

      }

      // System.out.println(i);     编译出错



while循环 : 用于控制循环的那个变量, 不归属于while的语法结构, 在循环结束后, 可以继续使用的.

        int i = 1;

        while(i <= 5){
            System.out.println("itheima");
            i++;
        }

        System.out.println(i);        // 正常使用
  • 结论 : for能够实现的需求, while都能实现, 反之也是一样.
  • 三种循环的死循环写法

    //没有判断条件就是一直执行  
    for(;;){
                System.out.println("停不下来了~");
            }
            --------------------------------------------
    
            //条件只要是boolean:true就会一直执行下去
            while(true){
                System.out.println(1);
            }
            --------------------------------------------
    
            do {
                System.out.println(1);
            }while(true);

06-跳转控制语句

  • break : 结束 (循环, switch)

    • break只能在循环, 和switch当中使用
  • continue : 跳过 (循环)

    • continue只能在循环中使用
  • 共同的注意事项 : break, continue 下面不允许写代码, 因为执行不到
  • 示例代码:

    public class ContinueDemo1 {
        /*
            continue : 跳过
            注意: 只能在循环中用
    
            break, continue 共同的注意事项 : 这俩东西, 下面不允许写代码, 因为执行不到.
         */
        public static void main(String[] args) {
            for (int i = 1; i <= 80; i++) {
                if (i == 3 || i == 7 || i == 11) {
                    continue;
                }
                System.out.println("老师正在给第" + i + "名同学发冰棍儿~");
            }
        }
    }
    
  • 细节 :

    • 如果break | continue 遇到了循环嵌套, 默认只能操作到自己所在的那一层循环
    • 想要操作指定层的话, 可以加入循环标号

07-Random产生随机数

1. 找符咒

        import java.util.Random;
        
2. 召唤精灵

        Random r = new Random();
        
3. 指挥精灵产生随机数

        20 ~ 60;
        
        // 0 ~ 40
        int num = r.nextInt(41) + 20;
import java.util.Random;
import java.util.Scanner;

public class RandomTest {
    /*
        需求: 实现猜数字小游戏

        1. 使用Random, 产生随机数(1~100)作为要猜的那个数据  (randomNum)
        2. 使用Scanner, 键盘录入用户猜测的数据   (scNum)
        3. 比对

        注意: 如果死循环, 没有出口, 下面是不允许写代码的, 因为执行不到.
     */
    public static void main(String[] args) {
        Random r = new Random();
        Scanner sc = new Scanner(System.in);

        // 1. 使用Random, 产生随机数(1~100)作为要猜的那个数据  (randomNum)
        int randomNum = r.nextInt(100) + 1;

        while(true){
            // 2. 使用Scanner, 键盘录入用户猜测的数据   (scNum)
            System.out.println("请输入:");
            int scNum = sc.nextInt();
            // 3. 比对
            if (scNum > randomNum) {
                System.out.println("猜大了");
            } else if (scNum < randomNum) {
                System.out.println("猜小了");
            } else {
                System.out.println("恭喜, 猜对了!!!");
                break;
            }
        }

        System.out.println("感谢您的使用, 再见!");
    }
}

你可能感兴趣的:(java)