逻辑控制语句

选择(分支)结构

  作用:通过条件进行判断是否执行代码块

if条件分支

  分类:

    单分支:  

      当条件不成立则跳代码块

      语法:  

        if(条件){

          语句块;

        }

int chinese = 98, math = 92;
float avgScore = (chinese+math)/2.0f;
if(avgScore>=95){
System.out.printf("因为平均成绩为%.2f考过95", avgScore);
}

    双分支:

      当条件成立执行代码块1,不成立则执行代码块2

      语法:

        if(条件){

          语句块1;

        }else{

          语句块2;

        }

int chinese = 98, math = 92;
float avgScore = (chinese+math)/2.0f;
if(avgScore>=95){
System.out.printf("因为平均成绩为%.2f考过95", avgScore);
}else{
System.out.printf("因为平均成绩为%.2f考过95", avgScore);
}

    多分支:(常用于连续区间的判断)

      当条件1不满足则判断条件2,条件2不满足则判断条件3...直到条件成立

      若都不成立,如果有else则执行else里代码,没有则全部跳过

      语法:

        if(条件1){

          语句块1;

        }else if(条件2){

          语句块2;

        }else if(){

          ......

        }else{

          语句块

        }

int chinese = 58, math = 98;
String level;
float avgScore = (chinese+math)/2.0f;
if(avgScore>=95){
level = "A";
}else if(avgScore>=90){
level = "B";
}else if(avgScore>=80){
level = "C";
}else if(avgScore>=70){
level = "D";
}else if(avgScore>=60) {
level = "E";
}else{
level = "F";
}
System.out.println(level);

常量列举

  作用:与if多分支类似,但适用于等值常量,不适用于连续区间

  类型限制:不支持long,float,double类型

  作用域:只有一个大括号,作用域为整个大括号,比if作用域大

  语法:

    switch(算术表达式){

      case 常量1:

        代码块1;

        break;

      case 常量2:

        代码块2;

        break;

      case 常量3:

        代码块3;

        break;

      ......

      default:

        break;

      }

Scanner input = new Scanner(System.in);
System.out.print("请输入:");
String dial = input.next();
switch (dial){
case "1":
System.out.println("当前余额为999999999");
break;
case "2":
System.out.println("历史账单...");
break;
case "3":
System.out.println("投资理财");
break;
default:
System.out.println("请重拨");
break;
}
input.close();

  解释:

    当算数表达式的结果依次匹配常量1、常量2...直到default

    若匹配成功则进入case的代码块,进入后碰到break则跳出switch,没有则继续匹配,所以switch有贯穿功能。当碰到default,则进入。

贯穿功能演示

Scanner input = new Scanner(System.in);
System.out.println("请输入:");
int num = input.nextInt();
switch(num){
case 1:
case 2:
case 4:
System.out.println("红烧");
break;
case 3:
case 5:
case 6:
System.out.println("清蒸");
break;
case 7:
System.out.println("节食");
break;
default:
System.out.println("输入错误");
break;
}
input.close();

  嵌套分支:

    if(条件1){

      if(条件2){

        语句块

      }

    }

循环结构

  作用:重复执行某行代码

for循环结构:

  语法:

    for(初始化,条件,变化){

      循环体;

    }

  执行顺序:初始化->条件成立->循环体->变化->初始化->条件不成立->跳出for循环体

  两种循环中控制的方法:

    continue跳过本次循环体,进入变化,继续循环

    break跳出,注:不会执行变化,直接退出

  假设求证法:声明布尔变量为true或false,后如果不满足,则修改布尔变量

  条件可省,默认死循环

增强型for循环:

  场景:当出现可迭代对象时,若不需对其中的元素进行修改时使用

  语法:

    for(type 变量名:可迭代对象){

      循环体;

    }

while循环:

  场景:一般在不知道循环次数时运用

  语法:

    while(条件){

      循环体;

    }

  解释:当条件满足时进入while循环,循环后在进入条件进行判断,直到条件不满足时跳出循环体

  可能出现一开始条件就不满足,则不会进入while

do while循环:

  与while循环不同处:至少执行循环一次

  语法:

    do{

      循环体;

    } while(条件);

 

  多重循环执行顺序:

    for(1; 2; 9){  

      3;

      for(4; 5; 7){

        6;

      }

      8;

    }

    10;

 
posted @ 2023-07-06 20:01  Lance_001  阅读(24)  评论(0)    收藏  举报