• Java 主要三大程序流程控制



    活动地址:CSDN21天学习挑战赛

    一、流程控制

    1、顺序结构,默认流程顺序,使用最多的

    在这里插入图片描述

    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println(1);
            System.out.println(2);
        }
    }
        结果:12
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2、分支结构,通过开关改变流程执行顺序,if、switch等

    1)if的几种分支结构

    (1) 第一种情况单分支if else

    如果只有一条执行语句可省略{}

    public class HelloWorld {
        public static void main(String[] args) {
    //        if(条件){  //如果只有一条执行语句可省略{}
    //            执行语句1;
    //        }else{
    //            执行语句2;
    //        }
            if (true){
                System.out.println("HelloWorld");
            }else{
                System.out.println("Sorry");
            }
        }
    }
        结果:HelloWorld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    (2)只有单分支 if

    在这里插入图片描述

    public class HelloWorld {
        public static void main(String[] args) {
    //        if(条件){  //如果只有一条执行语句可省略{}
    //            执行语句1;
    //        }
            if (true){
                System.out.println("HelloWorld");
            }
        }
    }
        结果:HelloWorld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    (3)第二种情况多重分支

    在这里插入图片描述

    public class HelloWorld {
        public static void main(String[] args) {
    //        if(条件1){  //如果只有一条执行语句可省略{}   ①条件1为真,运行语句;②条件1为假,判断条件2,依次类推,直到n;③所有条件都为假,执行else里面的语句n+1
    //            执行语句1;
    //        }else if (条件2){
    //            执行语句2;
    //        } else if (条件3){
    //            执行语句2;
    //        }else if (条件n){
    //            执行语句n;
    //        }else{
    //            执行语句n+1;
    //        }
            double score = 50.5;
            if (score>=90){
                System.out.println("成绩优异");
            }else if(score>=80){
                System.out.println("良");
            }else if(score>=60){
                System.out.println("及格");
            }else{
                System.out.println("不及格");
            }
        }
    }
        结果:不及格
    
    • 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

    2)switch分支

    表达式只能是char、short、int、String类型
    ①a首先和3比较;
    ②然后再和5比较,有对应的值则执行里面语句,然后break跳出分支;
    ③没有匹配上则执行default里面语句;
    注意点:case 表达式值不能相同;break不能丢,如果没写,会继续进行下一个case的表达式值匹配

    public class HelloWorld {
        public static void main(String[] args) {
    //        switch(表达式){  //表达式只能是char、short、int、String类型
    //            case 表达式值1: 执行语句1;
    //                    break;
    //            case 表达式值2: 执行语句2;
    //                break;
    //            default:执行语句3;
            int a = 5;
            switch (a){ //a首先和3比较,然后再和5比较,有对应的值则执行里面语句,然后break跳出分支,没有则匹配上执行default里面语句
                case 3:
                    System.out.println("我是3");
                    break;
                case 5:
                    System.out.println("我是5");
                    break;
                default:
                    System.out.println("我是上面没有查找打结果");
            }
        }
    }
    	结果:我是5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    3)if和switch异同点

    (1)相同点:都可以做分支控制

    (2)不同点:if做区间数据比较合适,例如:根据分数评级;switch适合值的匹配,比较直接;

    3、循环结构,for、while、do…while

    1)for循环

    ①执行初始值 ②判断是否满足执行条件,满足则执行 ③执行迭代条件
    public class HelloWorld {
        public static void main(String[] args) {
    //        for (数据类型 初始值; 执行条件; 迭代条件) {
    //            循环执行语句;
    //        }
            for (int i = 0; i < 3; i++) {
                System.out.println("结果:HelloWorld");
            }
        }
    }
    	结果:HelloWorld
    	结果:HelloWorld
    	结果:HelloWorld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    例如:水仙花

    public class HelloWorld {
        public static void main(String[] args) {
            for (int i = 100; i < 1000; i++) {
                if (narcissus(i) == i) {
                    System.out.println("水仙花是: " + i + "\t");
                }
            }
        }
        public static int narcissus(int i) {
            int hun = i / 100;
            int ten = i / 10 % 10;
            int ind = i % 10;
            int result = hun * hun * hun + ten * ten * ten + ind * ind * ind;
            return result;
        }
    }
    	水仙花是: 153	
    	水仙花是: 370	
    	水仙花是: 371	
    	水仙花是: 407
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    2)while循环

    ①初始化语句 ②判断是否满足执行条件,满足则执行 ③执行迭代条件 看着是不是眼熟,和for循环一样,只是写法有区别
    public class HelloWorld {
        public static void main(String[] args) {
    //        初始化语句;
    //        while (执行条件){
    //            执行语句;
    //            迭代语句;
    //        }
            int i = 0;
            while ( i < 3) {
                System.out.println("结果:HelloWorld");
                i++;
            }
        }
    }
    	结果:HelloWorld
    	结果:HelloWorld
    	结果:HelloWorld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    3)for和while异同点技巧

    (1)相同点:都用于循环,两者可以等价使用,先判断后执行

    (2)不同点:for迭代变量只能在循环体内使用;while的迭代变量可以在循环体外使用;

    (3)使用技巧:知道循环次数用for,不知道用while

    4)do…while循环

    public class HelloWorld {
        public static void main(String[] args) {
    //        初始化语句;
    //        do{       //任何情况下都会先执行do里面的语句一次
    //            执行语句;
    //            迭代语句;
    //        }while (执行条件);
            int i = 0;
            do{
                System.out.println("结果:HelloWorld");
                i++;
            } while( i < 3);
        }
    }
    	结果:HelloWorld
    	结果:HelloWorld
    	结果:HelloWorld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    4、特殊循环

    1)for死循环

    public class HelloWorld {
        public static void main(String[] args) {
            for(;;){
                System.out.println("死循环");
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2)while死循环

    public class HelloWorld {
        public static void main(String[] args) {
            while (true){
                System.out.println("死循环");
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3)do…while死循环

    public class HelloWorld {
        public static void main(String[] args) {
            do{
                System.out.println("死循环");
            }
            while (true);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4)多层循环,2层为例9*9乘法表

    在这里插入图片描述

    public class HelloWorld {
        public static void main(String[] args) {
            for (int i = 1; i <= 9; i++) {
                for (int j = 1; j <= i; j++) {
                    System.out.print( j + " * " + i + " = " + i * j + "\t");
                }
                System.out.println();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    5、跳出循环break、continue

    1)break:跳出并结束当前循环

    2)continue:跳出当前循环,进入下一次循环

    一份代码完成两个循环好做比较
    在这里插入图片描述

    public class HelloWorld {
        public static void main(String[] args) {
            for (int i = 0; i < 10; i++) {
                if(i == 5){
                    break;
                }
                System.out.print(i + "\t");
            }
            System.out.println();
            System.out.println("==================continue分割线====================");
            for (int i = 0; i < 10; i++) {
                if(i == 5){
                    continue;
                }
                System.out.print(i + "\t");
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    二、初识Java的API(Application Programming Interface)

    1、包名

    import java.util.Scanner;
    
    • 1

    2、用法

    在这里插入图片描述

    import java.util.Scanner;
    
    public class HelloWorld {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            String next = scan.next();
            System.out.println("打印内容: "+next);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3、随机从1-100生成数和用户输入做比较大小,相等退出,案例:

    在这里插入图片描述

    import java.util.Random;
    import java.util.Scanner;
    
    public class HelloWorld {
        public static void main(String[] args) {
            while (true) {
                Random rd = new Random();
                int rdNum = rd.nextInt(100)+1;
                Scanner scan = new Scanner(System.in);
                System.out.print("请您输入整型数字: ");
                int numInput = scan.nextInt();
                if (numInput > rdNum) {
                    System.out.println("随机数是:" + rdNum);
                    System.out.println("用户输入是:" + numInput);
                    System.out.println("用户输入大");
                } else if (numInput < rdNum) {
                    System.out.println("随机数是:" + rdNum);
                    System.out.println("用户输入是:" + numInput);
                    System.out.println("用户输入小");
                } else {
                    System.out.println("随机数是:" + rdNum);
                    System.out.println("用户输入是:" + numInput);
                    System.out.println("输入一样大,结束游戏");
                    break;
                }
            }
        }
    }
    
    
    • 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
  • 相关阅读:
    JSP页面实现验证码校验
    HarmonyOS应用开发入门(五)
    基于springboot+vue的戒毒所人员管理系统毕业设计源码251514
    kafka(四)消息类型
    npm 操作报错记录1- uninstall 卸载失效
    java 基于微信小程序的校园互助跑腿平台 uniapp 小程序
    大数据架构师——数据湖技术(二)
    【无标题】axios的ts封装,记录一下(Vue3项目)
    私有云不是真正的云计算!
    ArcGIS常用标注技巧
  • 原文地址:https://blog.csdn.net/walykyy/article/details/126139666