• day03_if_循环


    今日内容

    1.if.elseif
    2.循环
    3.控制关键词

    复习

    一 运算符
    	算术,赋值,关系,逻辑,三目
    		!,非,取反的作用
    		boolean r = !true; //false
    		boolean r2 = !(1 > 0);// false
    二 键盘录入
    	1) 导包 import java.util.Scanner;
    	2) 创建扫描器 Scanner scanner = new Scanner(System.in);
    	3) 调用方法完成输入
    	   int a = scanner.nextInt();
    三 if
    	if 单分支
    	ifelse 双分支
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    作业

    ublic class Demo9 {
    
        public static void main(String[] args) {
            System.out.println("-------第一题--------");
            // 编写程序, 找3个数最大值
            int a = 1;
            int b = 2;
            int c = 3;
            // 找3个数最大值
            if (a > b) {
                if (a > c) {
                    System.out.println("a大");
                } else {
                    System.out.println("c大");
                }
            } else {
                if (b > c) {
                    System.out.println("b大");
                } else {
                    System.out.println("c大");
                }
            }
            System.out.println("-------第二题--------");
            System.out.println("求出3个数的平均数");
    
            // 编写一个程序,计算用户输入的3个数字的平均值并显示出来。
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入第1个数:");
            int x = scanner.nextInt( );
            System.out.println("请输入第2个数:");
            int y = scanner.nextInt( );
            System.out.println("请输入第3个数:");
            int z = scanner.nextInt( );
    
            /**
             * 拼接字符串的口诀
             * 1. 先献丑完整的句子
             * 2. 再替换
             *    选中,"",中间,++,中间变量
             */
            System.out.println("您输入的数字是" + x + "," + y + "," + z + "");
            // System.out.println("您输入的数字是" + "x" + ",y" + ",z");
    
            double r = (x + y + z) / 3.0;
            System.out.println("3个数的平均数是: " + r );
    
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    public class Demo10 {
        public static void main(String[] args) {
            // 定义一个数,输出该数是不是既能被3整除也能被5整除
            // 什么叫整除? 余数为0
            int a = 15;
            if (a % 3 == 0 && a % 5 == 0) {
                System.out.println("是既能被3整除也能被5整除" );
            } else {
                System.out.println("不是既能被3整除也能被5整除" );
            }
    
            // 定义一个年龄,判断该年龄是否可以考驾照
            // 假设法定年龄18-70
            int age = 20;
            if (age >= 18 && age <= 70) {
                System.out.println("可以考驾照" );
            } else {
                System.out.println("不能考驾照" );
            }
            // java中不能写连续判断: 18 < age < 70,这样报错
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    一、if.elseif

    已经学过

    • if 单分支

      if(布尔表达式){
          
      }
      
      • 1
      • 2
      • 3
    • if.else 双分支

      if(布尔表达式){
            
      } else {
            
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5

    现在再学习一个

    • if.elseif.elseif… 多分支,实现多选一

      if(布尔表达式){
            
      } else if(布尔表达式){
            
      } else if(布尔表达式){
            
      } else if(布尔表达式){
            
      } else {
            
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
    public class Demo1 {
        public static void main(String[] args) {
            // 假设分数,根据分数选学校
            // 要求700分以上进清华
            // 600-700分进北大
            // 500-600分进郑大
            // 500分以下进厂
            int score = 350;
            if (score >= 700) {
                System.out.println("上清华" );
            } else if (score >= 600) {
                System.out.println("上北大" );
            } else if (score >= 500) {
                System.out.println("上郑大" );
            } else {
                System.out.println("进厂" );
            }
    
            // 给定一个成绩,根据成绩的范围打印相应的等级。
            // 90及以上为"A级",
            // 80-89为"B级",
            // 70-79为"C级",
            // 60-69为"D级",
            // 60以下为"E级"。
    
            int num = 75;
            if (num >= 90) {
                System.out.println("A级" );
            } else if (num >= 80) {
                System.out.println("B级" );
            } else if (num >= 70) {
                System.out.println("C级" );
            } else if (num >= 60) {
                System.out.println("D级" );
            } else {
                System.out.println("E级" );
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    二、循环

    回忆代码的执行流程

    • 最开始时代码从上至下一行一行执行
    • 使用if,ifelse,ifelseif等语句实现代码有选择的执行

    现在马上要学习的循环,可以实现

    • 代码重复执行

    实现代码循环语法

    • while
    • dowhile
    • for

    2.1 while【重要】

    ps: 任何循环都要四要素

    • 循环初始值
    • 循环控制条件
    • 循环迭代(变化的值)
    • 循环体(循环要 做的事情)

    while语法

    声明+赋值变量; // 循环初始值
    while(布尔表达式){// 循环控制条件
        执行语句;// 循环体(循环要 做的事情)
        ++--;// 循环迭代(变化的值)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    while执行流程

    • 从上至下依次执行,遇到while,开始判断
    • 如果结果是对(true)就执行{}内语句
    • 执行迭代
    • 继续回头再执行while后的判断,再根据判断结果对就执行{}内语句
    • 只有当while后判断为false时不再循环
     * @desc while循环
     */
    public class Demo2 {
    
        public static void main(String[] args) {
            // 重复5遍中午吃 - 捞面条
    
            int i = 1; // 初始值
            while(i < 6) { // 控制条件
                System.out.println("中午吃捞面条" ); // 循环体,即重复的内容
                i++; // 循环迭代(每次都变化的值)
            }
            System.out.println("结束" );
    
            // 输出语句输出: 11-20这10个数
            int a = 11; // 初始值
            while(a <= 20) {// 控制条件
                System.out.println(a );// 重复内容
                a++;// 迭代
            }
    
            // 输出语句输出100-1
            int b = 100;
            while(b > 0) {
                System.out.println(b );
                b--;
            }
    
            /**
             * 敲代码需要注意:
             * 随着学完if,ifelse,while等代码
             * 出现好多{}
             * 要记住{}一定成对儿出现,如果报错自己手动比对
             * ----------------------------
             * 格式缩进,每个{}内缩进
             */
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    2.2 dowhile【不重要】

    dowhile也是一种循环

    do {
       执行语句;
    }while(条件);
    
    • 1
    • 2
    • 3
     * @desc dowhile 循环
     */
    public class Demo3 {
    
        public static void main(String[] args) {
            // 重复输出5遍 做俯卧撑
            int i = 1; // 初始值
            do {
                System.out.println("做俯卧撑" );// 循环内容
                i++;//迭代
            }while(i < 6); // 控制条件
    
            /**
             * 与while区别在于:
             * dowhile会先do(先执行代码)
             * 后再判断while
             */
            // 输出1-10中的奇数
            int a = 1;
            do {
                if (a % 2 == 1) {
                    System.out.println(a );
                }
                a++;
            }while (a < 11);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    2.3 for循环【非常重要】

    for循环语法

    for (初始值;控制条件;迭代) {
        重复的内容语句;
    }
    
    • 1
    • 2
    • 3

    image-20231011113425411

     * @desc for循环
     */
    public class Demo4 {
    
        public static void main(String[] args) {
            System.out.println("------ 第一题 -----" );
            // 重复输出1-10
            for (int i = 1 ; i < 11 ; i++) {
                System.out.println(i );
            }
    
            System.out.println("------ 第二题 -----" );
            // 练习1 输出1-10的奇数
            for (int i = 1; i < 10; i++) {
                if (i % 2 == 1){
                    System.out.println("奇数"+i );
                }
            }
            System.out.println("------ 第三题 -----" );
            // 练习2 输出1-10的偶数
            for (int i = 1; i < 11; i++) {
                if (i % 2 == 0){
                    System.out.println("偶数"+i );
                }
            }
            System.out.println("------ 第四题 -----" );
            // 练习3 输出1-10中3的倍数
            for (int i = 1; i < 11; i++) {
                if (i % 3 == 0){
                    System.out.println("3的倍数"+i );
                }
            }
            System.out.println("------ 第五题 -----" );
            // 练习4 输出1-100中所有既能被3整除又能被5整除的数
            for (int i = 1; i < 101; i++) {
                if (i % 3 == 0 && i % 5 == 0){
                    System.out.println(i );
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    练习题

    计算1-10的和
    
    • 1
       public static void main(String[] args) {
            // 求1-10的和利用循环重复相加
            // 1+2+3+4+5+6+7+8+9+10
            int sum = 0;// 定义变量,sum意思和,即准备存储相加的和
            for (int i = 1; i < 11; i++) {
                // sum = sum + i;
                sum += i;
            }
            System.out.println(sum );
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    三、控制关键词【熟悉】

    循环要么是死循环(一直循环)、要么是固定的循环次数,那么能不能在循环过程中控制循环?

    怎么控制? 比如终止循环,或者跳过循环


    这就是今天要学习的控制循环的关键词

    • break
    • continue
    • return (并不是主要控制循环,只是用在循环中)

    3.1 break

    break 翻译: 终止,破坏

    作用: 终止循环不再执行

    public class Demo5 {
    
        public static void main(String[] args) {
            System.out.println("---- 演示1 ----" );
            // 输出1-10,但是在输出到5时退出循环
            int i = 1;
            while (i < 11){
                System.out.println(i );
                if (i == 5) {
                    break;// 退出循环
                }
                i++;
            }
            System.out.println("---- 演示2 ----" );
            for (int j = 1; j < 11; j++) {
                System.out.println(j );
                if (j == 5) {
                    break;// 退出循环
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    练习: 模拟网站登录,输入账号登录网站,假设账号是123

    • 如果账户对则输出欢迎登录
    • 如果错则再输入一遍账号
    • 最多允许输入3次账号,3次内只要有一次输入正确即可
    • 3次全错则提示账户锁定

    ps:合理使用输出语句,使代码显示效果,以及提示语更贴切 (站在使用者角度去设计程序)

           System.out.println("---- 演示账号登录 ----" );
            Scanner scanner = new Scanner(System.in);
            // 循环来实现重复输入账号
            for (int k = 1;k < 4;k++){
                System.out.println("请输入账号:" );
                int id = scanner.nextInt( );
    
                if (id == 123) {// 如果账号对,break可以提前结束循环
                    System.out.println("欢迎登录" );
                    break; // 停止循环
                } else {
                    System.out.println("账户错误" );
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3.2 continue

    continue 翻译: 继续

    作用: 先让循环停一次,继续后续循环

     * @desc continue继续循环
     */
    public class Demo7 {
    
        public static void main(String[] args) {
            // 逢七过,输出时不要7
            for (int i = 1; i < 11; i++) {
                if (i == 7) {
                    continue;// 跳过这一次循环,继续下次循环
                }
                System.out.println(i );
            }
            System.out.println("后续..." );
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3.3 return

    return 翻译: 返回

    作用: 无论是循环还是if等其他语句,遇到return 结束该方法

     * @desc
     */
    public class Demo8 {
        public static void main(String[] args) {
            for (int i = 1; i < 10; i++) {
                if (i == 5){
                    break;// 中断循环
                }
                System.out.println(i );
            }
            System.out.println("break后" );// 可以执行
    
            for (int i = 1; i < 10; i++) {
                if (i == 5){
                    continue; // 跳过一次循环,继续后续循环
                }
                System.out.println(i );
            }
            System.out.println("continue后" );// 可以执行
            for (int i = 1; i < 10; i++) {
                if (i == 5){
                    return;
                    // 结束该方法,当前是main方法,所以main方法结束,程序就结束了
                }
                System.out.println(i );
            }
            System.out.println("return后" );//这句话不执行,因为上面return时方法已经结束
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    3.4 练习

    编写一个程序,最多接收10个数,求这些数的和
    注意:中途用户可以通过输入886终止程序,并显示输入数的和
    
    • 1
    • 2
    		System.out.println("----- 求和练习plus -----" );
            Scanner scanner = new Scanner(System.in);
            int sum2 = 0;
            for (int i = 1; i < 11; i++) {
                System.out.println("请输入第"+i+"数字:" );
                int a = scanner.nextInt( );
                if (a == 886){
                    System.out.println("提前结束~" );
                    break;
                }
                sum2 = sum2 + a;
            }
            System.out.println("相加和 ==> " + sum2 );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    四、变量作用域

    变量的作用范围

     * @desc 变量的作用域
     */
    public class Demo6 {
    
        public static void main(String[] args) {
    
            /**
             * 变量的作用域: 是离它最近的花括号{}
             * 在作用范围外无法使用
             * 在作用范围内可以重复使用,但是不能出现重名的变量
             */
            int i = 1;
            System.out.println(i );
            if (true){
                int a = 1;
                System.out.println(a );
                System.out.println(i );
            }
            // System.out.println(a );
            System.out.println(i );
    
            for (int a = 1;a<10;a++){
            }
    
            for (int a = 1;a<10;a++){
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    image-20231011155227957

    单词

    num 数字

    score 分数

    while 当什么时候

    sum 和

    break 破坏

  • 相关阅读:
    Linux指定网卡名称
    python文件操作
    力扣 轮转数组三段逆置法和三段拷贝法(C语言)
    如何使用Python脚本
    CS224W1.3——图表示的选择
    XAML标记扩展(3)
    一步一图带你深入理解 Linux 虚拟内存管理
    Tensorflow2 中对模型进行编译,不同loss函数的选择下输入数据格式需求变化
    投资风险管理
    adb设备调试常用命令
  • 原文地址:https://blog.csdn.net/weixin_39641494/article/details/133774422