Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java APIs 和框架

Java 类引用

Java 有用资源

Java - default关键字



default 关键字

default关键字switch语句的一部分,它允许测试变量与值的列表是否相等。

每个值称为一个case,并且正在切换的变量会针对每个case进行检查。default代表一个特殊情况,无需任何匹配值即可执行。default case是可选的,如果在上面定义的任何case中遇到任何break或exit语句,则不会执行它。

语法

增强型switch语句的语法为:

switch(expression) {
   case value :
      // Statements
      break; // optional
   
   case value :
      // Statements
      break; // optional
   
   // You can have any number of case statements.
   default : // Optional
      // Statements
}

使用default关键字的规则

使用default关键字的switch语句适用以下规则:

  • switch语句中使用的变量只能是整数、可转换为整数的类型(byte、short、char)、字符串枚举

  • 可以在一个switch语句中使用任意数量的case语句。每个case后面跟着要比较的值和一个冒号。

  • case的值必须与switch语句中的变量的数据类型相同,并且必须是常量或字面量。

  • 当正在切换的变量等于某个case时,该case后面的语句将执行,直到遇到break语句。

  • 当遇到break语句时,switch语句将终止,控制流跳转到switch语句后面的下一行。

  • 并非每个case都需要包含break语句。如果没有break语句,控制流将贯穿到后续的case,直到遇到break语句。

  • switch语句可以有一个可选的default case,它必须出现在switch的末尾。当没有一个case为真时,可以使用default case执行任务。default case不需要break语句。

流程图

Switch Statement

default关键字的示例

示例1

在这个例子中,我们展示了switch语句的使用,其中case基于char类型。我们创建了一个变量grade。根据grade的值,检查每个case。如果一个case满足条件并且存在break语句,则不会检查后面的case。由于我们传入了一个无效的grade,因此只有default case会被执行,打印“Invalid Grade”作为结果。

package com.tutorialspoint;

public class JavaTester {

   public static void main(String args[]) {
      char grade = 'c';

      switch(grade) {
         case 'A' :
            System.out.println("Excellent!"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("Well done");
            break;
         case 'D' :
            System.out.println("You passed");
         case 'F' :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

输出

使用各种命令行参数编译并运行上述程序。这将产生以下结果:

Invalid grade
Your grade is c

示例2

在这个例子中,我们展示了switch语句的使用,其中case基于int类型。我们创建了一个变量grade。根据grade的值,检查每个case。如果一个case满足条件并且存在break语句,则不会检查后面的case。由于我们在case语句中使用了break语句,因此在匹配的case之后,switch语句根本不会执行default语句。

package com.tutorialspoint;

public class JavaTester {

   public static void main(String args[]) {
      int grade = 3;

      switch(grade) {
         case 1 :
            System.out.println("Excellent!"); 
            break;
         case 2 :
         case 3 :
            System.out.println("Well done");
            break;
         case 4 :
            System.out.println("You passed");
         case 5 :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

输出

使用各种命令行参数编译并运行上述程序。这将产生以下结果:

Well done
Your grade is 3

示例3

在这个例子中,我们展示了switch语句的使用,其中case基于String类型。我们创建了一个变量grade。根据grade的值,检查每个case。如果一个case满足条件并且存在break语句,则不会检查后面的case。这里我们没有使用default语句,因为它是一个可选字段,程序运行正常。

package com.tutorialspoint;

public class JavaTester {

   public static void main(String args[]) {
      String grade = "C";

      switch(grade) {
         case "A" :
            System.out.println("Excellent!"); 
            break;
         case "B" :
         case "C" :
            System.out.println("Well done");
            break;
         case "D" :
            System.out.println("You passed");
         case "F" :
            System.out.println("Better try again");
            break;
      }
      System.out.println("Your grade is " + grade);
   }
}

输出

使用各种命令行参数编译并运行上述程序。这将产生以下结果:

Well done
Your grade is C
java_basic_syntax.htm
广告