双if和if else的区别、if、switch case、编译器常量

文章目录

      • 双if和if else的区别
        • if else 是互斥的么
        • 如何判断if是否执行
    • switch case
      • 报错 Constant expression required
      • switch case支持那几种类型?
        • switch case - string示例

双if和if else的区别

如下表:

  • | 描述 | 场景
  • | – | –
    双if | 2个判断都会执行 | 不相干的2个判断
    if else | 上一个判断不满足,执行下一个判断
    有一个判断满足,不再执行后续判断 | 多个条件互斥的时候
if else 是互斥的么

其实应该分开来答。
语句之间是互斥的,如:
a不成立,判断b,b不成立,判断c,任意判断成立,不执行后续判断。

条件其实未必是互斥,例如:

intn=20;if(n<10){// 先判断n<10,不成立}else if(n<15){// 已经小于10了,肯定小于15啊 但是这个判断其实还会执行}else{}
如何判断if是否执行

判断中加个s–即可,最后打印s的值判断if是否执行。

switch case

报错 Constant expression required

case的值必须是编译期常量。

switch case支持那几种类型?

1、基本类型 # int、char等,天生支持
2、String # java7后特别做的支持,Integer等类型不支持
3、枚举 # 天生支持

switch case - string示例

重点:String一定要加final,才会成为编译期敞亮。

publicfinalstaticStringA="A";publicfinalstaticStringB="B";publicstaticvoidmain(String[]args){Stringtype=B;switch(type){caseB:System.out.println("B");break;}}