c if语句多个条件判断顺序_Java中的流程控制语句 (基础篇四)

本文详细介绍了Java中的流程控制语句,包括顺序结构、选择结构(if、if...else、if...else if...else、switch)和循环结构(for、while、do...while)。同时,讲解了嵌套循环和跳转语句(break、continue)的使用,帮助读者深入理解Java中的流程控制概念。
摘要由CSDN通过智能技术生成

67e400a38263ae93f5acf0f0a0bc9632.png

流程控制就是对事物次序的布置和安排,在程序中就是对代码执行次序的安排和控制

程序中的流程控制主要有三种:顺序流程、选择流程、循环流程。

顺序流程:比如打印输出的代码按照指定的顺序结构依次排序,打印的结果按照代码的顺序执行打印;

循环流程:选择结构的代码实现;

循环流程:循环结构的代码实现;

一、顺序结果

顺序结构最容易理解也比较简单,执行顺序就是代码编写的顺序,从上到下执行。简单举个例子:

public static void main(String[] args){
    //顺序执行,根据编写的顺序,从上到下运行
    System.out.println(1);
    System.out.println(2);
    System.out.println(3);
}
输出:
1
2
3

二、选择结构

Java代码中存在一种特殊的语句,叫做选择语句,这种选择语句也需要对一些条件作出判断,从而选择对应执行的代码。这种选择语句组成的代码结构就是选择结构

选择语句分为两种:if条件语句、switch条件语句。

1. if语句

if语句是满足某种要求的条件就进行某种处理。格式:

...//其他语句
if (布尔表达式) {    //它的结果只有true或false
    语句体;    //满足条件后执行的代码
}

执行流程:

  • 首先判断布尔表达式,看其结果是true还是false
  • 如果是true,执行语句体
  • 如果是false就不执行语句体,

718e6b51ed5830ab68078bc429f634ac.png

举例:

public static void main(String[] args){
    System.out.println("小明出来玩了")
    //int age=16;
    int age=20;//20岁
    
    if(age>=18){
        System.out.println("小明去上网了");
    }
    
    System.out.println("小明回家了")
}

2. if...else语句

if...else语句是指如果满足某种条件就进行某种处理,否则就进行另一种处理,格式:

if (布尔表达式){
    语句体1;
} else {
    语句体2;
}

执行流程:

  • 首先判断布尔表达式看结果
  • 如果是true就执行语句体1
  • 如果是false就执行语句体2

53d1fa09e118d7c24ff614e2bf22dd6e.png

举例:

public static void main(String[] args){
    // 判断给定的数据是奇数还是偶数
    // 定义变量
    int a = 1;
    if(a % 2 == 0) {
        System.out.println("a是偶数");
    } else{
        System.out.println("a是奇数");
    }
    System.out.println("结束");
}

3. if...else if...else语句

if...else if ...else可以对多个条件进行判断,进行多种不同的处理。

格式:

if (判断条件1) {
    执行语句1;
}else if (判断条件2) {
    执行语句2;
}
...
}else if (判断条件n) {
    执行语句n;
} else {
    执行语句n+1;
}

执行流程

  • 首先判断布尔表达式1看其结果是true还是false
  • 如果是true就执行语句体1
  • 如果是false就继续判断布尔表达式2看其结果是true还是false
  • 如果是true就执行语句体2
  • 如果是false就继续判断布尔表达式…看其结果是true还是false
  • 如果没有任何布尔表达式为true,就执行语句体n+1。

61456c227e3f723f099c147df5676764.png

举例:

public static void main(String[] args) {    
        int socre=99;//定义变量记录分数
    
        if(socre>=90&&socre<=100) {
            System.out.println("成绩是优秀的!");
        } else if(socre>=80&&socre<90) {
            System.out.println("成绩很好!");
        } else if(socre>=70&&socre<80) {
            System.out.println("成绩良好!");
        } else if(socre>=60&&socre<70) {
            System.out.println("成绩及格!");
        } else if(socre>=0&&socre<60) {
            System.out.println("成绩不及格!");
        } else {
            System.out.println("不合法成绩");
        }  
}

4. switch语句

switch条件语句也是一种比较常用的选择语句,和if条件语句不同的是,switch只能针对某个表达式的值作出判断,从而决定程序执行那一段代码。

格式:

switch(表达式) {//具体的某个变量
        
    case 常量值1:
        语句体1;
        break;
​
    case 常量值2:
        语句体2;
        break;
    ...
        
     default:
        语句体n+1;
        break;
}

注意:switch的表达式只能是byte、short、int、char、Enum、String。

执行流程:

  • 首先计算出表达式的值
  • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
  • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

606f2ec39eeebd76ba26c16844bb07be.png

举例:

public static void main(String[] args) {
    //定义变量,判断是星期几
    int weekday = 6;
    //switch语句实现选择
    switch(weekday) {
        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;
    }   
}

特别注意:break不能漏写,漏写了会出现case穿透

其实case的穿透性不算是一个bug,用好了可以简练代码,实际开发中可以灵活运用case穿透性解决相应的需求,用的不好会改变代码逻辑。如果case的后边不写break,将出现穿透现象,不再判断下一个case指,直接向后运行直到遇见break;

举个简单的例子:

public static void main(String[] args) {
    int week=1;
    switch(week) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            System.out.println("工作日");
            break;
        case 6:
        case 7:
            System.out.println("休息日");
            break;
        default :
            System.out.println("数字不在1~7范围之内,请重新指定");
    }
}

三、循环结构

Java中一段代码重复执行的语句叫做循环语句,这种循环语句形成的结构就叫做循环结构。

循环语句有三种:for语句、while语句、do...while语句。

1. for语句

格式:

for ( 初始化语句① ; 判断条件语句② ; 控制条件语句④ ) {
    
            循环体语句③
                
}

执行流程:

  • 执行顺序:①②③④>②③④>②③④…②不满足为止。
  • ①负责完成循环变量初始化
  • ②负责判断是否满足循环条件,不满足则跳出循环
  • ③具体执行的语句
  • ④循环后,循环条件所涉及变量的变化情况

5068b008d245cf3d428df01b3a69c0e8.png

举例:

public static void main(String[] args) {
  //1.定义一个初始化变量,记录累加求和,初始值为0
  int sum = 0;
  //2.利用for循环获取1-100之间的数字
  for (int i = 1; i <= 100; i++) {
      //3.判断获取的数字是奇数还是偶数
      if(i % 2==0){
        //4.如果是偶数就累加求和
        sum += i;
      }
  }
    //5.循环结束之后,打印累加结果
    System.out.println("sum:"+sum);
}

注意:

  • 初始化语句i可以是任意的数字
  • 判断语句一定要保证条件有边界,可以让程序停下来,否则就会出现死循环
  • 控制语句可以变通,主要目的是让循环变量变化
  • 循环变量出了循环结构就不能使用

2. 循环语句while

格式:

初始化语句① 
while ( 条件判断② ) {
    循环体语句③  
    条件控制语句(步进表达式)④  
}

和for循环功能一样,只不过关键字不一样,代码结构不一样。和选择结构中的if判断也有点类似,满足条件就执行 {} 内的语句,区别在于while语句会反复地执行,知道条件不成立。

执行流程:

  • 执行顺序:①②③④>②③④>②③④…②不满足为止。
  • ①负责完成循环变量初始化。
  • ②负责判断是否满足循环条件,不满足则跳出循环。
  • ③具体执行的语句。
  • ④循环后,循环变量的变化情况。

d49c729cbc33f4ea00f4f0cb85aae7b2.png

举例:

public static void main(String[] args) {
    //使用while循环实现
    //定义一个变量,记录累加求和
    int sum = 0;
    //定义初始化表达式
    int i = 1;
    //使用while循环让初始化表达式的值变化
    while(i<=100){
        //累加求和
        sum += i ;
        //步进表达式改变变量的值
        i++;
    }
    //打印求和的变量
    System.out.println("1-100的和是:"+sum);
}

注意:控制变量语句不能忘记,否则会出现死循环。

3. do...while语句

格式:

初始化表达式①
do{
    循环体③
    条件控制语句④ 
}while(条件判断语句 ②); //这里有分号结束

执行顺序:①③④>②③④>②③④…②不满足为止。

举例:

public static void main(String[] args) {
    int x=1;
    do {
      System.out.println("HelloWorld");
      x++;
    }while(x<=10);
}

注意:

  • while后边一定要有分号结束
  • 无论条件是否满足都会先执行一次循环体,然后再去根据判断是否继续执行。

4. 嵌套循环

嵌套循环是指一个循环语句中再定义一个循环语句的语法结构。

for嵌套循环格式:

for(初始化表达式①; 循环条件②; 控制条件语句⑦) {   //分针    
    for(初始化表达式③; 循环条件④; 控制条件语句⑥) {  //秒针        
        执行语句⑤;        
    }        
}

执行流程:

假如外层循环执行2次,内循环执行次数2次执行顺序:

第一次循环:①②>③④⑤⑥>④⑤⑥>④

第二次循环:⑦②>③④⑤⑥>④⑤⑥>④>⑦②

5. 跳转语句

调整语句主要有两个:break和continue

break:

使用场景:终止switch或循环

这里主要说一下在循环语句中的作用,当出现在循环语句中,作用就是终止并跳出循环,继续执行循环结构后边的代码:

while循环举例:

public static void main(String[] args){
    int x=1;        //定义变量x,初始值为1
    while(x<=10){   //循环条件      
        if(x==3){   //跳出循环的条件是当x==3的时候
            break;  //跳出循环
        }
        System.out.println("x="+x);//条件成立,打印x的值       
        x++;        //x进行自增
    }
}
//不加break将会执行10次,加了break当x==3时候就跳出循环

for循环中举例:

public static void main(String[] args){
    for(int x=1;x<=10;x++){ 
        System.out.println("x="+x);//打印x的值
        if(x==3){   //跳出循环的条件是当x==3的时候
            break;  //跳出循环
        }
    }
}

特别注意:当break语句出现在嵌套循环中的内层循环是,它只能跳出内层循环,如果想跳出到外层循环需要在外层循环的关键字前添加标记,然后跳转到标记,这样才能跳出外层循环。

public static void main(String[] args)  {
        int y=1;
        demo: while(y<10) {                       
            for(int x=1; x<=9; x++) {                
                 System.out.println("x="+x);//打印x的值                
                if(y==3) {  //跳出循环的条件是当x==3的时候                  
                    break demo; //跳出demo循环
                }                
            }                      
            y++;
        }
    }

continue:

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

//求1-100之间的奇数的和
public static void main(String[] args) {
    int sum=0;    
    for (int i = 1; i <= 100; i++) {
        if(i % 2==0){  
            //如果是偶数,结束本次循环
            continue;
        }
        sum+=i;//不断累加                
    }
    System.out.println(sum);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值