zoukankan      html  css  js  c++  java
  • Java全栈第一篇-流程控制语句

    第一章 流程控制

    1.1、为什么要实现流程控制?意义在哪里?

    基本介绍语句的执行顺序对程序执行的结果是有影响的,只有清楚语句的执行流程,我们才能正确的预估程序的运行结果,所以我们要采用控制语句来实现我们对语句执行顺序的把控。

    1.2、顺序结构

    基本介绍:顺序结构,也是最简单一种结构形式,即语句从上到下依次执行。

    程序实例:

    public class Squence { // 创建一个顺序结构的类
        public static void main(String[] args) {// 打印输出一段的顺序语句
            System.out.println("1");
            System.out.println("2");
            System.out.println("3");
        }
    }

    第二章 三类语句

    2.1、判断语句

    2.1.1单if语句

    基本格式:

    if(关系表达式){
      语句体;       //如果关系表达式判断为true,则执行语句体。
    }              //如果关系表达式判断为false,则执行其它语句。

    使用情形:

           单if语句在单独使用时通常用来判断较为简单的数值问题(注:对于单if语句来说,通俗的讲就是要么判断true执行语句体,要么判断为false不执行语句体,至多执行一个语句,也可以不执行)     ,单if语句也可以与其他语句结合使用,穿插进某些语句中,方便语句的判断或暂停(例如在循环语句中结合break或者continue结束循环。)

    程序实例:

    public class SentenceIf{
    public static void main(String[] args) {
        //创建一个年龄变量,识别是否为未成年人。
        int age =19;
        if(age >=18 ){
          System.out.println("已经成年");
        }
        System.out.println("未成年");
       }
      }

    2.1.2 if-else语句

    基本格式:

     if(关系表达式) { 
      语句体1;          //如果关系表达式判断为true,则执行语句体1
    }else {
      语句体2;          //如果关系表达式判断为false,则执行语句体2
    }

    使用情形:

            if-else语句通常针对的是二者选其一的问题,两个语句选一个执行,即必须执行一个语句,与其他语句结合与单if语句类似。

    程序实例:

    public class SentenceIfElse {
        public static void main(String[] args) {  //判断a是否为三者中的最值
            int a = 20;
            int b = 30;
            int c = 40;
            if (a > b && a>c) {
                System.out.println(a + "为最大值");
            }else if(a < b && a<c ) {
                System.out.println(a + "为最小值");
            }
        }
    }

    2.1.3扩展的if-else语句

    基本格式:

     if (判断条件1) {
      语句1;                    //判断条件为true,则执行语句1,若为false,则进入下一个判断语句
    } else if (判断条件2) {
      语句2;                    //判断条件为true,则执行语句2,若为false,则进入下一个判断语句
    }
    ...
    }else if (判断条件n) {
     语句n;                    //判断条件为true,则执行语句n,若为false,则进入下一个判断语句
    } else {
      语句n+1;               //上述的判断条件都不成立,则直接执行语句n+1
    }

    使用情形:

            扩展的if-else语句通常针对的是多种条件下的执行情况判断问题,做到n者选其一(例如:数学中的分段函数问题,考察学生成绩的等级问题)。与其他语句结合与单if语句类似。

    程序实例:

    public class Demo01test {
        
             public static void main(String[] args){
                 //判断考试成绩的等级
                 int score =100;
                 if (score<0 || score>100){
                     System.out.println("你的成绩输入错误");
                 }else if(score>=90 && score<=100){
                     System.out.println("优秀");
                 }else if(score>=80 && score<=89){
                     System.out.println("好");
                 }else if(score>=70 && score<=79){
                     System.out.println("良");
                 }else if(score>=60 && score<=69){
                     System.out.println("及格");
                 }else{
                     System.out.println("不及格");
                 }
                 }
            }

    2.1.4 if与三元运算符的替换

    三元运算符的基本格式回顾: 

            数据类型 变量名 = 布尔类型表达式?结果1:结果2;

            通过if-else的判断形式很容易联想到三元运算符,两者可以替换,扩展if-else语句可以有更多结果。

    程序实例:

    //取两个数字当中的最大值
    public class Demo06Max {
        public static void main(String[] args) {
            int a = 120;
            int b = 30;        
            
                    // 使用三元运算符
             int max1 = a > b ? a : b;
            
            // 使用if语句
            int max2;
            if (a > b) {
                max2 = a;
            } else {
                max2 = b;
            }
            
            System.out.println("最大值:" + max2);
        }
    }

    2.2选择语句

    2.2.1 switch语句

    基本格式:

     switch(表达式) {
      case 常量值1:
        语句体1;
        break;
      case 常量值2:
        语句体2;
        break;
      ...
      default:
        语句体n+1;
        break;           //该break是可以省略的,但为了程序的规范性,最好加上
    }

    使用情形:

            switch中所有的case是并列的,小括号内的数值是被检测量,多种情况并列,选择值符合要求的那一个case,执行其下的语句体直到遇到了break或者整体结束为止。

    注意事项:

           (1)多个case后面的数值不可以重复。

           (2)switch后面小括号当中只能是下列数据类型:基本数据类型:byte/short/char/int     |   引用数据类型:String(字符串)、enum(枚举)        (警惕基本数据类型中没有long)

           (3)case前后顺序可以颠倒,而且break语句还可以省略。

           (4)如果两个相邻的case,上一个没有break但其值符合条件,switch执行上一个case的语句体后,不会管下一个case(直接穿透他),执行下一个case的语句体。

    程序实例:

    public class OneWeek {           //写一个输入数字可以判断星期几的程序
        public static void main(String[] args) {
            int num = 3;
            
            switch (num) {
                case 1:
                    System.out.println("星期一");
                    break;
                case 2:
                    System.out.println("星期二");
                    break;
                case 3:
                    System.out.println("星期三");
                    break;
                case 4:
                    System.out.println("星期四");
                    break;
                case 5:
                    System.out.println("星期五");
                    break;
                case 6:
                    System.out.println("星期六");
                    break;
                case 7:
                    System.out.println("星期日");
                    break;
                default:
                    System.out.println("数据不符合规范");
                    break; 
            }
        }
    }

    2.3 循环语句

    2.3.1 for语句

    基本格式:

     
    for(初始化表达式(1); 布尔表达式(2); 步进表达式(4)){      
             循环体(3)
    }
    /*解释
    (1)
    负责完成循环变量初始化(初始化一次后,变量的值只会通过步进表达式发生改变)
    (2)负责判断是否满足循环条件,不满足则跳出循环
    (3)具体执行的语句
    (4)循环后,循环条件所涉及变量的变化情况 */

    使用情形:

            for语句是循环语句中最常使用的语句,因为去将三个表达式结合起来方便书写,不用将初始化语句提出来放在开头定义。还经常采用for循环去遍历数组内的每一个元素。

    注意事项:

            for循环的变量在小括号当中定义,只有循环内部才可以使用,for循环中如果定义了一个变量,那么这个变量还可以在for循环外再次被利用。

    程序实例:

      //遍历二维数组中每一个一维数组
                for(int[] cells : arr) {
                    //遍历一维数组中每一个元素
                    for(int cell : cells) {
                        System.out.print(cell+" ");
                    } 
                     System.out.println();
                }
    public class Sentencefor {          //求100以内所有偶数的和
    
        public static void main(String[] args) {
            int sum = 0;
            
                            for (int i = 2; i <= 100; i += 2) { 
                sum = sum + i;               
                System.out.println(sum);
            }          //这里并不一定要采用2开头,用1开头记得再采用if函数区分奇偶
            System.out.println(sum);
        }
    
    }

    2.3.2while语句

    基本格式:

    初始化表达式;          
      while(布尔表达式){
        循环体;
        步进表达式;
    }

    使用情形:

           while语句常用先判断后循环的程序中。

    注意事项:

           (1)while语句由于初始化表达式处于循环之外,所以while语句之后不能再次给原初始化表达式的变量进行赋值,但可以直接调用。

           (2)已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。

    程序实例:

    public class SentenceWhile {
        public static void main(String[] args) {
            int i = 1;    // 初始化语句
    
            while (i <= 10) { //  条件判断
                System.out.println("妖魔鬼怪快离开" );   // 循环体
                i++;           // 步进语句
            }
        }
    }

    2.3.3 do-while语句

    基本格式:

    初始化表达式;
        do{
        循环体;
        步进表达式;
    }while(布尔表达式);

    使用情形:

           do-while语句多使用于先执行后判断的程序中。

    注意事项:

        (1)while语句由于初始化表达式处于循环之外,所以while语句之后不能再次给原初始化表达式的变量进行赋值,但可以直接调用。

        (2)do-while无论在什么样的条件下,都至少循环一次,但for循环和while循环可能会执行0次。

    程序实例:

    public class Demo11DoWhile {
        public static void main(String[] args) {
            int i = 1;       //  初始化语句
            
               do {
                System.out.println("妖魔鬼怪快离开" );  // 循环体
                i++;     //步进语句
            } while (i <= 10);   // 条件判断
        }
    }

    2.4 跳出循环语句

    2.4.1 break语句

    基本介绍:

           break语句的作用是跳出一整个大的循环。

    使用场景:

            (1)在选择结构switch语句中。

            (2)在循环语句中。

    程序实例:(见于switch语句中)

    2.4.2 continue语句

    基本介绍:

            结束本次循环,继续下一次的循环。

    使用场景:

            多见于循环语句中。

    程序实例:

     
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            //不打印第2次javanb
            if(i == 2){
              continue;
            }
            System.out.println("javanb"+i);//i用于查看次数
        }
    }

    3、扩展知识点

    3.1死循环

    基本介绍:

           也就是循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}。  (注:c语言可不能这么干,非人为条件下可能会导致内存占满)

    使用情形(人为):

           例如:我们需要读取用户输入的输入,但是用户输入多少数据我们并不清楚,也只能使用死循环,当用户不想输入数据了,就可以结束循环了,如何去结束一个死循环呢,就需要使用到跳出语句了。

    3.2嵌套循环

    基本介绍:

            一个循环的循环体是另外一个循环(套娃效应)。

    使用场景:

          (1)想做出一个矩阵。

          (2)想做出某种图案。

          (3)........

    程序实例:

    public class ForPractice2 {
        public static void main(String[] args) {
            for(int x=0;x<10;x++){
                for(int y=0;y<=x;y++){
                  System.out.print("*");
                }
                System.out.println();
            }
            //在这里打印出正三角形 
    //测试结果
    *
    **
    ***
    ****
    *****
    ******
    *******
    ********
    *********
    **********

       

  • 相关阅读:
    BZOJ 3208: 花神的秒题计划Ⅰ
    BZOJ 3207: 花神的嘲讽计划Ⅰ
    BZOJ 2732: [HNOI2012]射箭
    BZOJ 3165: [Heoi2013]Segment
    BZOJ 3626: [LNOI2014]LCA
    2017 01 16 校内小测 ZXR专场
    BZOJ 3101: N皇后
    BZOJ 1106: [POI2007]立方体大作战tet
    BZOJ 2084: [Poi2010]Antisymmetry
    【UOJ#228】基础数据结构练习题 线段树
  • 原文地址:https://www.cnblogs.com/MurasameLory-chenyulong/p/12578438.html
Copyright © 2011-2022 走看看