购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.3 条件语句演练

知识点讲解:光盘:视频\PPT讲解(知识点)\第4章\条件语句演练.mp4

到此为止,已经学完了Java语言中的所有假设语句,此时我们可以随心所欲地编写程序。但是由于初学者编程经验尚浅,缺少处理问题的经验,所以在本节的内容中,将通过具体条件语句的实战演练来提高大家的编程能力。

4.3.1 正确使用switch语句

switch是控制选择的一种方式,编译器生成代码时可以对这种结构进行特定的优化,从而产生效率比较高的代码。在Java中,编译器能够根据分支的情况分别产生tableswitch和lookupswitch,其中tableswitch适用于处理分支比较集中的情况,而lookupswitch适用于处理分支比较稀疏的情况。请看下面的一段代码【光盘:\daima\4\Testone1.java】。

public class Testone1 {
  public static void main(String[] args){
     int i = 3;  
     switch(i){
       case 0:  
         System.out.println("0");
         break;  
       case 1:  
         System.out.println("1");
         break;  
       case 3:  
         System.out.println("3");
         break;  
       case 5:  
         System.out.println("5");
         break;  
       case 10:  
         System.out.println("10");
         break;  
       case 13:  
         System.out.println("13");
         break;  
       case 14:
         System.out.println("14");
         break;  
     default:  
     System.out.println("default");
         break;
     }
  }
}

上面的switch语句代码非常简单,在编写代码时读者一定要清楚当参数case和参数switch的值相等时,系统就会执行对应的case语句。在Java中规定,参数case必须是常量表达式,也就是case语句参数必须是最终的,即case值只能使用常量值常量的最终变量。执行上述代码后的效果如图4-12所示。

图4-12 正确编写switch语句

4.3.2 正确使用if语句

所谓条件语句,是指程序根据条件是否成立进行选择执行的一类语句。条件语句在Java应用中使用得比较广泛,难点在于如何准确地抽象条件。例如实现程序登录功能时,如果用户名和密码正确,则进入系统,否则弹出“密码错误”这样的提示框等。下面是一段经典的if语句代码【光盘:\daima\4\Ifjing.java】。

public class Ifjing 
{
 public static void main(String[] args){
   int month = 3;
    int days = 0;  //日期数
    if(month == 1){ 
    days = 31;
    }else if(month == 2){ 
    days = 28;
    } else if(month == 3){ 
    days = 31;
    } else if(month == 4){ 
    days = 30;
    } else if(month == 5){ 
    days = 31;
    } else if(month == 6){ 
    days = 30;
    } else if(month == 7){ 
    days = 31;
    } else if(month == 8){ 
    days = 31;
    } else if(month == 9){ 
    days = 30;
    } else if(month == 10){ 
    days = 31;
    } else if(month == 11){ 
    days = 30;
    } else if(month == 12){ 
    days = 31;
    } 
    System.out.print(days);
    }
}

在书写if语句时,每个else if语句是有顺序的。在实际书写时,必须按照逻辑上的顺序进行书写,否则将出现逻辑错误。执行上述代码后的效果如图4-13所示。

图4-13 if语句的正确书写

4.3.3 switch语句的执行顺序

有很多读者学完了switch语句后,并不真正知道switch语句的执行顺序是怎么一回事。从前面所学的知识可以知道,switch表达式的值决定选择哪个case分支,如果找不到相应的分支,就直接从“default”开始输出,当程序执行一条case语句后,因为例子中的case分支中没有break和return语句,所以程序会执行紧接于其后的语句。为了更好地说明switch语句的执行顺序,下面通过3段代码进行详细说明。

第一段代码如下所示。

public class switchs1 {
  public static void main(String[] args){
  int x=0;
 switch(x){
default:
  System.out.println("default");
case 1:
    System.out.println(1);
   case 2:
     System.out.println(2);
  }
}
}

执行上面的代码会得到如下结果:

default 1 2

第二段代码如下所示。

public class switchs2 {
  public static void main(String[] args){
      int x = 0;
      switch(x){
       default:
        System.out.println("default");
      case 0:
         System.out.println(0);
      case 1:
     System.out.println(1);
    case 2:
        System.out.println(2);
      } 
}
}

执行上面的代码会得到如下结果:

0 1 2

第三段代码如下所示。

public class switchs3 {
 public static void main(String[] args){
     int x = 0;
      switch(x){
      case 0:
       System.out.println(0);
      case 1:
       System.out.println(1);
     case 2:
       System.out.println(2);
     default:
      System.out.println("default");
      }
}
}

执行上面的代码会得到如下结果: PH04X+FCQIpqI9ULvOVMwiUbpddowlJ6VHcFAreXWcLKChfk9WdOeOViK8rQisIj

0 1 2 default
点击中间区域
呼出菜单
上一章
目录
下一章
×