Java编程中的条件判断之if语句的用法详解

所属分类: 软件编程 / java 阅读数: 69
收藏 0 赞 0 分享

if语句使用布尔表达式或布尔值作为分支条件来进行分支控制,其中if语句有如下三种形式:

  第一种形式:

  if ( logic expression )

  {

  statements…

  }

  第二种形式:

  if (logic expression)

  {

  statements…

  }

  else

  {

  statements…

  }

  第三种形式:

  if (logic expression)

  {

  statements…

  }

  else if(logic expression)

  {

  statements…

  }

  …//可以有零个或多个else if语句

  else//最后的else语句也可以省略

  {

  statement

  }

  在上面if语言的三种形式中,放在if之后的括号里的只能是一个逻辑表达式,即这个表达式的返回值只能是true或false.第二种情形和第三种情形是相通的,如果第三种形式中else if块不出现,则变成了第二种形式。

  上面的条件语句中,if(logic expression)、else if(logic expression)以及else后花括号括起来多行代码被称为代码块,一个代码块通常被当成一个整体来执行(除非运行过程中遇到return、break、continue等关键字,或者遇到了异常),因此这个代码块也被称为条件执行体。例如如下程序:

  程序清单:codes/04/4-2/TestIf.java

  public class TestIf

  {

  public static void main(String[] args)

  {

  int age = 30;

  if (age > 20)

  //只有当age > 20时,下面花括号括起来的语句块才会执行

  //花括号括起来的语句是一个整体,要么一起执行,要么一起不会执行

  {

  System.out.println("年龄已经大于20岁了");

  System.out.println("20岁以上的人应该学会承担责任…");

  }

  }

  }

  因此,如果if(logic expression)、else if(logic expression)和else后的语句块只有一行语句时,则可以省略花括号,因为单行语句本身就是一个整体,无须花括号来把它们定义成一个整体。下面代码完全可以正常执行(程序清单同上):

  //定义变量a ,并为其赋值

  int a = 5;

  if (a > 4)

  //如果a>4,执行下面的执行体,只有一行代码作为代码块

  System.out.println("a大于4");

  else

  //否则,执行下面的执行体,只有一行代码作为代码块

  System.out.println("a不大于4");

  通常,我们建议不要省略if、else、else if后执行块的花括号,即使条件执行体只有一行代码,因为保留花括号会有更好的可读性,而且保留花括号会减少发生错误的可能,例如如下代码,则不可正常执行:

  //定义变量b ,并为其赋值

  int b = 5;

  if (b > 4)

  //如果b>4,执行下面的执行体,只有一行代码作为代码块

  System.out.println("b大于4");

  else

  //否则,执行下面的执行体

  b--;

  //对于下面代码而言,它已经不再是条件执行体的一部分,因此总会执行

  System.out.println("b不大于4");

  上面代码中以粗体字标识的代码行:System.out.println("b不大于4");,将总是会执行,因为这行代码并不属于else后的条件执行体,else后的条件执行体就是b--;这行代码。

  if、else、else if后条件执行体要么是一个花括号扩起来的语句块,则这个语句块整体作为条件执行体;要么是以分号为结束符的一行语句,甚至可能是一个空语句(空语句是一个分号)。

  如果if块后有多条语句作为条件执行体,如果省略了这个条件执行体的花括号,则会引起编译错误,看下面代码(程序清单同上):

  //定义变量c ,并为其赋值

  int c = 5;

  if (c > 4)

  //如果c>4,执行下面的执行体,将只有c--;一行代码为条件执行体

  c--;

  //下面是一行普通代码,不属于条件执行体

  System.out.println("c大于4");

  //此处的else将没有if语句,因此编译出错

  else

  //否则,执行下面的执行体,只有一行代码作为代码块

  System.out.println("c不大于4");

  在上面代码中,因为if后的条件执行体省略了花括号,则系统只把c--;一行代码作为条件执行体,当c-;语句结束后,if语句也就结束了。后面的System.out.println("c大于4");代码已经是一行普通代码了,不再属于条件执行体,从而导致else语句没有if语句,从而引起编译错误。

更多精彩内容其他人还在看

Java基于反射机制实现全部注解获取的方法示例

这篇文章主要介绍了Java基于反射机制实现全部注解获取的方法,结合实例形式分析了java反射机制获取注解的具体实现方法与操作注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

Java 信号量Semaphore的实现

这篇文章主要介绍了Java 信号量Semaphore的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

eclipse+maven+spring mvc项目基本搭建过程

这篇文章主要介绍了eclipse+maven+spring mvc项目基本搭建过程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring boot集成swagger2生成接口文档的全过程

这篇文章主要给大家介绍了关于Spring boot集成swagger2生成接口文档的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java冒泡排序法和选择排序法的实现

这篇文章主要介绍了Java冒泡排序法和选择排序法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring Cloud Alibaba教程之Sentinel的使用

这篇文章主要介绍了Spring Cloud Alibaba教程之Sentinel的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Josephus环的四种解法(约瑟夫环)基于java详解

这篇文章主要介绍了Josephus环的四种解法(约瑟夫环)基于java详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java继承Thread类创建线程类示例

这篇文章主要介绍了Java继承Thread类创建线程类,结合实例形式分析了java线程操作相关使用技巧与注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

Java使用Callable和Future创建线程操作示例

这篇文章主要介绍了Java使用Callable和Future创建线程操作,结合实例形式分析了java使用Callable接口和Future类创建线程的相关操作技巧与注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

springBoot使用JdbcTemplate代码实例

这篇文章主要介绍了springBoot使用JdbcTemplate代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多