zoukankan      html  css  js  c++  java
  • Java的条件判断

    以下内容引用自http://wiki.jikexueyuan.com/project/java/decision-making.html

    在 Java中有两种类型的条件判断语句,它们分别是:

    • if语句
    • switch语句

    一、if 语句:

    if语句由一个布尔表达式后跟一个或多个语句组成。

    语法:

    if语句的语法是:

    if(Boolean_expression)
    {
       //Statements will execute if the Boolean expression is true
    }

    如果布尔表达式的值为true,那么代码里面的块if语句将被执行。如果不是true,在if语句(大括号后)结束后的第一套代码将被执行。

    示例:

    public class Test {
    
       public static void main(String args[]){
          int x = 10;
    
          if( x < 20 ){
             System.out.print("This is if statement");
          }
       }
    }
    //这将产生以下结果:
    This is if statement

    二、if...else语句

    任何if语句后面可以跟一个可选的else语句,当布尔表达式为false,语句被执行。

    语法:

    if...else的语法是:

    if(Boolean_expression){
       //Executes when the Boolean expression is true
    }else{
       //Executes when the Boolean expression is false
    }

    示例:

    public class Test {
    
       public static void main(String args[]){
          int x = 30;
    
          if( x < 20 ){
             System.out.print("This is if statement");
          }else{
             System.out.print("This is else statement");
          }
       }
    }
    //这将产生以下结果:
    This is else statement

    三、if...else if...else语句

    if后面可以跟一个可选的else if...else语句,在测试不同条件下单一的if语句和else if语句是非常有用的。

    当使用if,else if,else语句时有几点要牢记。

    • 一个if语句可以有0个或一个else语句 且它必须在else if语句的之后。
    • 一个if语句可以有0个或多个else if语句且它们必须在else语句之前。
    • 一旦else if语句成功, 余下else if语句或else语句都不会被测试执行。

    语法:

    if...else的语法是:

    if(Boolean_expression 1){
       //Executes when the Boolean expression 1 is true
    }else if(Boolean_expression 2){
       //Executes when the Boolean expression 2 is true
    }else if(Boolean_expression 3){
       //Executes when the Boolean expression 3 is true
    }else {
       //Executes when the none of the above condition is true.
    }

    示例:

    public class Test {
    
       public static void main(String args[]){
          int x = 30;
    
          if( x == 10 ){
             System.out.print("Value of X is 10");
          }else if( x == 20 ){
             System.out.print("Value of X is 20");
          }else if( x == 30 ){
             System.out.print("Value of X is 30");
          }else{
             System.out.print("This is else statement");
          }
       }
    }
    //这将产生以下结果:
    Value of X is 30

    四、嵌套if...else语句

    它始终是合法的嵌套if else语句,这意味着可以在另一个if或else if语句中使用一个if或else if语句。

    语法:

    嵌套if...else的语法如下:

    if(Boolean_expression 1){
       //Executes when the Boolean expression 1 is true
       if(Boolean_expression 2){
          //Executes when the Boolean expression 2 is true
       }
    }

    示例:

    public class Test {
    
       public static void main(String args[]){
          int x = 30;
          int y = 10;
    
          if( x == 30 ){
             if( y == 10 ){
                 System.out.print("X = 30 and Y = 10");
              }
           }
        }
    }
    //这将产生以下结果:
    X = 30 and Y = 10

    五、switch语句

    switch语句允许一个变量来对一系列值得相等性进行测试。每个值被称为case,并且被启动的变量会为每一个case检查。

    语法:

    增强的for循环的语法是:

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

    以下规则适用于switch语句:

    • 在switch语句中使用的变量只能是一个byte,short,int或char。
    • 在一个switch语句中可以有任何数量的case语句。每个case后跟着即将被比较的值和一个冒号。
    • 对于case的值必须是相同的数据类型作为开关变量,它必须是一个常量或文字。
    • 当被启动了的变量与case是相等的,那case后的语句将执行,一直到break为止。
    • 当达到一个break语句,switch终止,并且控制流跳转到跟着switch语句的下一行。
    • 不是每一个case需要包含一个break。如果没有出现break,控制流将贯穿到后面的case直到break为止。
    • switch语句可以有一个可选默认case,它必须出现在switch的结束处。在执行一项任务时没有任何case是真,那默认case可被使用。在默认case中不需要break。

    示例:

    public class Test {
    
       public static void main(String args[]){
          //char grade = args[0].charAt(0);
          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);
       }
    }
    //编译并运行上面使用各种命令行参数的程序。这将产生以下结果:
    Well done
    Your grade is a C

    测试工程:https://github.com/easonjim/5_java_example/tree/master/javabasicstest/test6

  • 相关阅读:
    C#中使用SendMessage在进程间传递数据的实例
    解决C# WINFORM程序只允许运行一个实例的几种方法详解
    实现WinForm窗体的美化(借助第三方控件)
    sql2008拒绝了对对象 (数据库 ,架构'dbo')的SELECT权限
    在一个SQL Server表中一行的多个列找出最大值
    如何搭建MVC + EF 框架
    灵活运用 SQL SERVER FOR XML PATH
    CentOS7切换到root用户和退回普通用户
    Zuul Read Time out 错误
    neo4j---删除关系和节点
  • 原文地址:https://www.cnblogs.com/EasonJim/p/6923700.html
Copyright © 2011-2022 走看看