zoukankan      html  css  js  c++  java
  • java--流程控制

    Java流程控制包括顺序控制、条件控制和循环控制。

    顺序控制,就是从头到尾依次执行每条语句操作。条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操作A,反之则执行操作B。循环控制,又称为回路控制,根据循环初始条件和终结要求,执行循环体内的操作。

    顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。

    Java有两种分支结构:

    if语句
    switch语句
    Java中有三种主要的循环结构:

    while循环
    do…while循环
    for循环

    import java.util.Scanner;
    
    /**
     * java的流程控制:顺序结构 分之机构 循环结构
     * 
     * @author HuTiger 顺序结构:通过debug模式可以看出java程序的运行时顺序结构的
     * 
     *         分支结构:if语句
     *
     */
    public class ProcessControl {
    
        public static void main(String[] args) {
            // IfStudy();
            // SwitchCaseStudy();
            // WhileStudy();
        }
    
        /*
         * IF语句
         */
        private static void IfStudy() {
    
            /*
             * 根据条件表达式(true||false)来判断是否进入语句块 if(条件表达式){ 语句块 } 继续执行后面的语句
             */
            int i = 100;
            if (i > 60) {
                System.out.println(i);
            }
            System.out.println("后面需要执行的语句");
    
            /*
             * if else 语句
             */
    
            // system.in就是标准输入,可以获取从键盘输入的值
            // 通过scanner(jdk提供给我们的工具)来处理获取到的数据
            System.out.println("请输入分数!");
            Scanner sc = new Scanner(System.in);
    
            int j = sc.nextInt();// 把用户输入的数赋值给j
            System.out.println("控制台获取到的值是:" + j);
    
            if (j > 60) {
                System.out.println("通过");
            } else {
                System.out.println("没通过");
            }
            System.out.println("当if else 执行后需要执行的内容");
    
            /*
             * if else if else if ...else
             */
            // 场景:将一个5(score)分制分为 :5分的评价等级A 4==B 3==C 其他是D
            Scanner sca = new Scanner(System.in);
            int score = sca.nextInt();
            if (score >= 0 && score <= 5) {
                if (score == 5) {
                    System.out.println("A");
                } else if (score == 4) {
                    System.out.println("B");
                } else if (score == 3) {
                    System.out.println("C");
                } else {
                    System.out.println("D");
                }
            } else {
                System.out.println("输入不合法");
            }
    
            /*
             * 练习:百分制系统 90-100 优秀 75-89 良好 60-74 合格 其他 不合格
             */
            Scanner scan = new Scanner(System.in);
            int score1 = scan.nextInt();
            if (score1 >= 0 && score1 <= 100) {
                if (score1 >= 90 && score1 <= 100) {
                    System.out.println("优秀");
                } else if (score1 >= 75) {
                    System.out.println("良好");
                } else if (score1 >= 60) {
                    System.out.println("合格");
                } else {
                    System.out.println("不合格");
                }
            } else {
                System.out.println("输入不合法");
            }
    
        }
    
        /*
         * switch case
         */
        private static void SwitchCaseStudy() {
    
            /*
             * 分支语句:switch case key:需要比较的表达式 value:与表达式进行比较的值
             * 执行流程:如果key和value比较的结果为true,那么将执行case部分的代码,case部分可以有多个 类似于else if 部分
             * 区别是key和value之间的比较只能是== default部分是不满足以上任何去执行的代码 ,类似于else
             * 
             * switch 后面括号中的表达式的值必须是符合byte,char,short,int类型的常量表达式 jdk1.7以后可以使用string
             * ,而不能用浮点型或long类型
             * 
             * switch(key) { case value: break; default: break; }
             */
    
            // 场景:将一个5(score)分制分为 :5分的评价等级A 4==B 3==C 其他是D
            Scanner sc = new Scanner(System.in);
            int score = sc.nextInt();
            switch (score) {
            case 5:
                System.out.println("A");
                break;// 标准写法 break不能少 跳出当前语句块,如果没有break会直接进入下一个case语句
            case 4:
                System.out.println("B");
                break;
            case 3:
                System.out.println("C");
                break;
            default:
                System.out.println("D");
                break;
            }
        }
    
        /*
         * while 循环和do while
         */
        private static void WhileStudy() {
    
            /*
             * 执行流程: 当条件表达式为true的时候进入代码块,执行需要执行的代码 当条件表达式为false的时候执行后面的语句
             * 
             * while(条件表达式){ 需要执行的代码部分 } 后面的语句,末尾不要加分号。
             * 先判断,后执行
             */
    
            /*
             * 场景:输入1-100的整数分析:给输出的值一个变量I,当i在1-100之间的时候输出
             */
            int i = 1;// 循环的起点
            while (i <= 100) {
                System.out.println(i);
                // 给出循环的步长
                i++;
            }
            System.out.println("打印结束");
    
    
            /*
             * do while
             * 
             * do{
             * }while(条件表达式)
             */
    
            int a=1;
            do{//语句块中的内容无论条件是否满足都会先执行一次
                System.out.println(a);
                a++;
            }
            while(a<=0);
    
        }
    
        /*
         * for循环
         */
        private static void ForStudy() {
    
            /*
             * 场景:打印1-100 int i=1是循环的起点 i++ 循环的补偿 i<=100 循环的条件
             */
            for (int i = 1; i <= 100; i++) {
                System.out.println(i);
            }
            System.out.println("打印结束");
        }
    }
    

    这里需要注意的是:
    1,switch语句中不能忘记break,否则会有贯穿现象。
    2,switch的应用有所限制,其表达式只能应用于byte,short,int,char

    循环语句:包括while循环语句,do…while循环语句和for循环
    其中while(布尔表达式)和 do…while(布尔表达式)类似,while是先判断后执行,do…while是先执行一次然后再判断条件。如果布尔表达式结果为真,那么两个循环语句结果相同,若布尔表达式的第一次结果为假,do…while会先执行一次,而while则不会继续执行。

    for循环格式:for(变量初始化;条件判断;步进){循环语句},只进行一步初始化,然后进行条件判断,为真后执行for中的循环语句,执行后进行步进,然后继续进行条件判断,直到结果为假,跳出循环。

  • 相关阅读:
    python发送丁丁消息
    python实现发送微信消息
    Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹
    Jenkins服务器磁盘空间爆满问题解决
    如何在Linux中自动删除或清理/tmp文件夹内容?
    Linux系统挂载NFS文件系统
    mongodb创建用户创建库分配权限
    docker部署node.js
    【leetcode】1588. Sum of All Odd Length Subarrays
    【leetcode】1559. Detect Cycles in 2D Grid
  • 原文地址:https://www.cnblogs.com/ernst/p/12819197.html
Copyright © 2011-2022 走看看