Java全栈第一篇-流程控制语句

Posted MurasameLory

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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循环外再次被利用。

程序实例:

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();
        }
        //在这里打印出正三角形 
//测试结果
*
**
***
****
*****
******
*******
********
*********
**********

 

   

以上是关于Java全栈第一篇-流程控制语句的主要内容,如果未能解决你的问题,请参考以下文章

JAVA全栈第四天:Mybatis Mapper

JAVA全栈第四天:Mybatis Mapper

Python全栈开发第一篇:初识Python

“全栈2019”Java第二十二章:控制流程语句中的决策语句if-else

python全栈第二天所学

Web全栈工程师之路——JavaScript篇——流程控制语句