Java基础学习之分支结构

任何程序都可以总结出三种执行语句:
  顺序结构:从程序开始,到程序结束
  分支结构:在顺序结构基础上,根据条件进行选择执行方向。
  循环结构:在顺序结构基础上,根据条件进行多次执行相同的或相似的代码

分支结构:根据条件的成立与否,选择执行方向。

 

(一)if分支结构:
      语句1;
      if(条件表达式){
          代码块//条件成立时,执行的逻辑
      }
      语句2;  
      执行逻辑:执行完语句1后,碰到if,一定会执行
               条件表达式,结果为true,就执行代码块,
           然后再执行语句2。
           结果为false,就跳过代码块,执行语句2

 

if(条件表达式){
       代码块1//  条件成立时执行此代码块
      }else{
       代码块2//  条件不成立时执行此代码块
      }

      执行逻辑:当程序执行到if时,一定会执行条件表达式进行判断
                结果为true,就执行代码块1.
        结果为false,跳过代码块1,执行代码块2

if语句的练习:

 

public class TestDemo02{
    public static void main(String[]args){
        /*
          int a = 4,b = 6,
          使用分支结构找到最大值max
          使用分支结构找到最小值min
        */
        int a = 4;
        int b = 6;
        int c = 10;
        int d = 20;
        int max = -1;
        int min = -1;

        if(a>b){
            max = a;
            min = b;
        }if(a<b){
            max = b;
            min = a;
        }
        System.out.println("max:"+max);
        System.out.println("min:"+min);

        /*
          int c = 10;int d = 20;
          使用if-else分支结构,找出最大值max
          最小值min
        */

        if(c>d){
            max = c;
            min = d;
            
        }else{
            
            min = c;        
            max = d;
            
        }
        System.out.println("max:"+max);
        System.out.println("min"+min);
        
    }
}


     if(条件1){
          代码块1;
     }else if(条件2){
      代码块2
     }else if(条件3){
          代码块3
     }else{
          代码块4
     }     

         执行逻辑:程序执行到if时,一定会执行条件1,进行判断
               结果为true,执行代码块1。
           结果为false,执行条件2,进行判断
           结果为true,执行代码块2.
           结果为false,执行条件3,进行判断

public class TestDemo03{
    public static void main(String []args){
        int a = 1649;
        int b = 906;
        int c = 5631;
        int min = -1;
        int mid = -1;
        int max = -1;
        //max
        if(a>b){
            if(a>c){
                max = a;
            }else{
                max = c;
            }
        }else{
            if(c<b){
                max = b;
            }else{
                max = c;
            }
        }
        //min
        if(a<b){
            if(a<c){
                min = a;
            }else{
                min = c;
            }
        }else{
            if(b>c){
                min = c;
            }else{
                min = b;
            }
        }
        //mid
        if(a>b){
            if(b>c){
                mid = b;
            }else{
                if(c>a){
                    mid = c;
                }else{
                    mid = a;
                    }
            }
        }else{
            if(a<c){
                mid = a;
            }else{
                if(c<b){
                    mid = c;
                }else{
                    mid = b;
                }
            }
        }
        System.out.println("max:"+max);
        System.out.println("min:"+min);
        System.out.println("mid:"+mid);
    }
}
    

    

当if语句中含有else部分时,一定会执行其中一条分支,
        没有else时{}部分时,有可能一条分支都不执行。   

 

分支结构:
(一)if语句

    当if语句中含有else部分时,一定会执行其中一条分支,
        没有else时{}部分时,有可能一条分支都不执行。
(二)switch-case语句
    格式switch(整数表达式){
        case value1:代码块;[break];
        case value2:代码块;[break];
        。。。。。。。
        [default:代码块n;]-----[]表

    整数表达式:即能获得一个整数的表达式。示可有可无
    }
    但是jdk1.7以后,支持字符串表达式。

    case后的值与小括号内的结果类型要相同
    break:打断,毁掉,跳出,结束的含义。

    执行逻辑:当程序遇到switch关键字时计算表达式得值,
    然后匹配case后的值,然后,执行对应分支逻辑
        如果次分支有break,就结束分支结构,如果次分支没有break,
    就继续执行下一条分支逻辑,
    直到遇到break或default或全部执行完后续的所有分支逻辑

    if语句和switch-case的区别:
        if执行的是一个条件表达式,switch-case执行的是整数或字符串表达式。

public class TestDemo01{
    public static void main(String[]args){
        /*
        练习1.定义一个变量,用来存储月份
        使用switch语句输出此月份在哪个季度。
        此月份是第一季度第二季度第三季度第四季度
        */
        int mouth = 10;
            switch((mouth-1)/3){
            case 0:
                System.out.println("第一季度");
            break;
            case 1:
                System.out.println("第二季度");
            break;
            case 2:
                System.out.println("第三季度");
            break;
            case 3:
                System.out.println("第四季度");
            break;
            
        }
                

        //练习2
        int person = 124;
            switch (person%3){
            case 0:
                System.out.println("操场没有人");
            break;
            case 1:
                System.out.println("操场还有1人");
            break;
            case 2:
                System.out.println("操场还有2人");
            break;
            
            }

        //练习3
        int score = 49;
        switch (score/10){
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            System.out.println("小明成绩为"+score+"等级为E");
            break;
        case 6:
            System.out.println("小明成绩为"+score+"等级为D");
            break;
        case 7:
            System.out.println("小明成绩为"+score+"等级为C");
            break;
        case 8:
            System.out.println("小明成绩为"+score+"等级为B");
            break;
        case 9:
            System.out.println("小明成绩为"+score+"等级为A");
            break;
        case 10:
            System.out.println("小明成绩为"+score+"等级为S");
            break;

        
        }
    }
}

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值