zoukankan      html  css  js  c++  java
  • Java 分支结构

    1.分支结构

      任何复杂的逻辑都可以通过“顺序”、“分支”、“循环”三种基本的程序结构来实现。分支结构:程序在运行中,根据不同的条件执行不同的语句。

     

    三种结构:

    • if结构:满足条件时执行语句,不满足则不执行(1条路)
    • if...else结构:满足条件执行语句,不满足则执行另外的语句(两条路)
    • if...else if结构:多个条件,满足不同条件执行不同语句(多条路)

    1.1 if结构

    语法:

    if(条件表达式){

      语句块;

    }

    1)案例1,判断一个整数是不是偶数

    public class Test {
        public static void main(String[] args){
            int a = 4;
            if(a%2==0){
            	System.out.println(a+"是偶数");
            }
            System.out.println("over");
        }
    
    }
    

    1.2 if...else结构

    语法:

    if(条件表达式){ 

      语句块1;

    }else{

      语句块2;

    }

    1)案例1,判断一个整数是不是偶数,并输出结果

    public class Test {
        public static void main(String[] args){
            int a = 4;
            if(a%2==0){
            	System.out.println(a+"是偶数");
            }else{
            	System.out.println(a+"不是偶数");
            }
            System.out.println("over");
        }
    
    }
    

    3.if...else if结构(嵌套)

    语法:

    if(条件表达式1){

      语句块1;

    }else if(条件表达式2){

      语句块2;

    }else if(条件表达式3){

      语句块3;

    }

    1)案例1,判断一个数是正数、负数或是0并输出结果

    public class Test {
        public static void main(String[] args){
            int a = 4;
            if(a>0){
            	System.out.println(a+"是正数");
            }else if(a<0){
            	System.out.println(a+"是负数");
            }else if(a==0){
            	System.out.println(a+"是0");
            }
            System.out.println("over");
        }
    
    }
    

    2.switch-case

       一种特殊的分支结构,只能用于判断整数,可以根据一个整数表达式的不同值,从不同程序入口开始执行,需要和break配合使用,执行完相应的语句后则退出switch块,不执行下面的语句。

      如果不加break,则会在满足条件后,将该条件下面的其他条件的语句块一起按顺序输出,直到遇到break或}停止,如下案例2。

      default选项可以不写,也不是必须放在后一个(建议放最后),默认匹配完所有条件后不匹配的情况下才会执行default语句,default可以不写break,如下案例3。

     

    语法:

    switch(判断整数){

    case 1:

      语句块1;

      break;

    case 2:

      语句块2;

      break;

    case 3:

      语句块3;

      break;

    default:

      语句块4;

      break;

    }

    1)案例1

    public class Test {
        public static void main(String[] args){
            int a = 4;
            switch(a){
            case 1:
            	System.out.println("A");
            	break;
            case 2:
            	System.out.println("B");
            	break;
            case 3:
            	System.out.println("C");
            	break;
            default:
            	System.out.println("D");
            	break;
            }
        }
    }
    
    /*
    运行结果:D
    */
    

    2)案例2,不加break的情况

    public class Test {
        public static void main(String[] args){
            int a = 2;
            switch(a){
            case 1:
            	System.out.println("A");
            	break;
            case 2:
            	System.out.println("B");
    
            case 3:
            	System.out.println("C");
            	
            default:
            	System.out.println("D");
            	
            }
        }
    }
    
    
    /*
    运行结果:
    B
    C
    D
    */
    

    3)案例3,default不写在最后,default需要加break,如下情况

    public class Test {
        public static void main(String[] args){
            int a = 4;
            switch(a){
            default:
            	System.out.println("D");
            case 1:
            	System.out.println("A");
            	break;
            case 2:
            	System.out.println("B");
            	break;
            case 3:
            	System.out.println("C");
            	break;
            }
        }
    }
    
    /*
    运行结果:
    D
    A
    */
    

    2.1 switch-case的优缺点

    1)优点:

    • 常常和break语句配合使用实现分支的功能
    • 与if...else的主要区别在于switch-case结构的效率高、结构更清晰
    • 从JDK7.0开始,switch-case支持字符串表达式,如下案例

    2)缺点:

    •  只能判断整数(字符串)相等

    3)案例1,判断字符串

    public class Test {
        public static void main(String[] args){
            String sng = "B";
            switch(sng){
            case "A":
            	System.out.println("A");
            	break;
            case "B":
            	System.out.println("B");
            	break;
            default:
            	System.out.println("C");
            	break;
            }
        }
    }
    
    
    /*
    运行结果:B
    */
    

    4)案例2,判断字符

    public class Test {
        public static void main(String[] args){
            char sng = 'B';
            switch(sng){
            case 'A':
            	System.out.println("A");
            	break;
            case 'B':
            	System.out.println("B");
            	break;
            default:
            	System.out.println("C");
            	break;
            }
        }
    }
    
    
    /*
    运行结果:B
    */
    

      

     

  • 相关阅读:
    39 多线程(十一)——ThreadLocal
    38 多线程(十)——volatile 数据同步
    Linux内存描述之内存区域zone–Linux内存管理(三)
    Linux内存描述之内存节点node–Linux内存管理(二)
    Linux内存描述之概述--Linux内存管理(一)
    服务器体系(SMP, NUMA, MPP)与共享存储器架构(UMA和NUMA)
    乐观
    乱七八糟的学习资料汇总(python3.x,pyqt,svn,git)
    Linux学习资料网站汇总链接(持续更新ing)
    浅析十大常见排序(含C++代码)
  • 原文地址:https://www.cnblogs.com/jmwm/p/6917143.html
Copyright © 2011-2022 走看看