详解Java编程中if...else语句的嵌套写法

if...else if...else语句
if语句后面可以跟elseif…else语句,这种语句可以检测到多种可能的情况。
使用if,else if,else语句的时候,需要注意下面几点:
if语句至多有1个else语句,else语句在所有的elseif语句之后。
If语句可以有若干个elseif语句,它们必须在else语句之前。
一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
语法
if...else语法格式如下:
if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为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或者elseif语句中使用if或者elseif语句。
语法
嵌套的if…else语法格式如下:
if(布尔表达式 1){
   ////如果布尔表达式 1的值为true执行代码
   if(布尔表达式 2){
      ////如果布尔表达式 2的值为true执行代码
   }
}
你可以像 if 语句一样嵌套 else if...else。
实例

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

复合 if- else if – else 语句小例子:

百分制转换为等级制

public class IfElseDemo06{
 public static void main(String[] args){
 int a=85;   //声明int 型变量a 并赋值85
 if (a>90){   //条件判断
  System.out.println("成绩"+a+",是A 等级");
 }else if (a>80){  //条件判断
  System.out.println("成绩"+a+",是B 等级");
 }else if (a>70){  //条件判断
  System.out.println("成绩"+a+",是C 等级");
 }else if (a>60){  //条件判断
  System.out.println("成绩"+a+",是D 等级");
 }else{
  System.out.println("成绩"+a+",是B 等级");
 }
 }
}

运行结果如图所示。

成绩85,是B等级

再来总结一下if-else语句的规则:

1)、if后的括号不能省略,括号里表达式的值最终必须返回的是布尔值
2)、如果条件体内只有一条语句需要执行,那么if后面的大括号可以省略,但这是一种极为不好的编程习惯。
3)、对于给定的if,else语句是可选的,else if 语句也是可选的
4)、else和else if同时出现时,else必须出现在else if 之后
5)、如果有多条else if语句同时出现,那么如果有一条else if语句的表达式测试成功,那么会忽略掉其他所有else if和else分支。
6)、如果出现多个if,只有一个else的情形,else子句归属于最内层的if语句

(0)

相关推荐

  • Java中避免写嵌套if样式的代码详解

    前言 Optional的代码相对更加简洁,当代码量较大时,我们很容易忘记进行null判定,但是使用Optional类则会避免这类问题. 下面这是一个嵌套的 if 判断,业务逻辑是从 httpRequst 中获取 X-Auth-Token 的值.逻辑是如果 header中有值则从 header 中取值否则从 cookie 中取值,取到值后调用一个 http 远程接口 获取用户信息,获取不到则报"获取用户信息失败",如果 token 都不存在则直接返回 httpRespons 为 401-

  • 详解Java编程中if...else语句的嵌套写法

    if...else if...else语句 if语句后面可以跟elseif-else语句,这种语句可以检测到多种可能的情况. 使用if,else if,else语句的时候,需要注意下面几点: if语句至多有1个else语句,else语句在所有的elseif语句之后. If语句可以有若干个elseif语句,它们必须在else语句之前. 一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行. 语法 if...else语法格式如下: if(布尔表达式 1){

  • 详解Java编程中包package的内容与包对象的规范

    包的内容 包的内容应该仔细设计,使其只包含在功能上相关的类和接口.包中的类可以自由地访问该包中其他类的非私有成员,有些类甚至可能有足够的权限去访问其他类的内部细节,为了避免这样的类对类成员进行误操作,我们需要对类成员进行保护.任何没有被声明为private的成员都可以被同一个包中的其他所有类型访问,所以任何不相关的类之间的藕合程度都可能会比我们所期望的程度高. 包还为寻找有用的接口和类的程序员提供了逻辑分组的功能.由不相关的类组成的包使程序员很难分辨出哪些接口和类是有用的,而类的逻辑分组可以帮助

  • 详解Java编程中super关键字的用法

    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的. 好了,现在开始讨论this&super这两个关键字的意义和用法.在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当

  • 详解Java编程中线程的挂起、恢复和终止的方法

    有时,线程的挂起是很有用的.例如,一个独立的线程可以用来显示当日的时间.如果用户不希望用时钟,线程被挂起.在任何情形下,挂起线程是很简单的,一旦挂起,重新启动线程也是一件简单的事. 挂起,终止和恢复线程机制在Java 2和早期版本中有所不同.尽管你运用Java 2的途径编写代码,你仍需了解这些操作在早期Java环境下是如何完成的.例如,你也许需要更新或维护老的代码.你也需要了解为什么Java 2会有这样的变化.因为这些原因,下面内容描述了执行线程控制的原始方法,接着是Java 2的方法. Jav

  • 举例详解Java编程中HashMap的初始化以及遍历的方法

    一.HashMap的初始化 1.HashMap 初始化的文艺写法    HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器.普通青年一般会这么初始化: HashMap<String, String> map = new HashMap<String, String>(); map.put("Name", "June"); map.put("QQ", "2572073701"

  • 详解Java编程中对线程的中断处理

    1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时--都需要通过一个线程去取消另一个线程正在执行的任务.Java没有提供一种安全直接的方法来停止某个线程,但是Java提供了中断机制. 如果对Java中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此.中断机制是如何工作的?捕获或检测到中断后,是抛出InterruptedException还是重设中断状态以及在方法中吞掉中断状态会有什么后果?Thread.st

  • 详解Java编程中throw和throws子句的使用方法

    Java throw:异常的抛出 程序可以用throw语句抛出明确的异常.Throw语句的通常形式如下: throw ThrowableInstance; 这里,ThrowableInstance一定是Throwable类类型或Throwable子类类型的一个对象.简单类型,例如int或char,以及非Throwable类,例如String或Object,不能用作异常.有两种可以获得Throwable对象的方法:在catch子句中使用参数或者用new操作符创建. 程序执行在throw语句之后立即

  • 详解Java编程中final,finalize,finally的区别

    final: final可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一. final成员 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变.其初始化可以在两个地方,一是其定义处,二是在构造函数中,两者只能选其一. 下面程序很简单的演示了final的常规用

  • 详解Java编程中统一资源定位符URL的相关使用

    统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址.超文本链路由统一资源定位符URL维持.URL的格式是:     <METHOD>://<HOSTNAME:PORT>/<PATH>/<FILE> 其中:Method是传输协议:HOSTNAME是文档和服务器所在的Internet主机名(域名系统中DNS中的点地址);PORT是服务端口号(可省略):PATH是路径名,FILE是文

  • 详解Java编程中static关键字和final关键字的使用

    Java static关键字以及Java静态变量和静态方法 static 修饰符能够与变量.方法一起使用,表示是"静态"的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同. 请看下面的例子: public class Demo { static int i = 10; int j; Demo() { this.j

随机推荐