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

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语句,从而引起编译错误。

(0)

相关推荐

  • Java语法基础之选择结构的if语句、switch语句详解

    [前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能. 流程控制语句分类: 顺序结构选择结构:if语句.switch语句循环结构:while语句.for语句 一.顺序结构: 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的. 总的来说:写在前面的

  • Java中if...else语句使用的学习教程

    if语句 一个if语句包含一个布尔表达式和一条或多条语句. 语法 If语句的用语法如下: if(布尔表达式) {    //如果布尔表达式为true将执行的语句 } 如果布尔表达式的值为true,则执行if语句中的代码块.否则执行If语句块后面的代码. public class Test { public static void main(String args[]){ int x = 10; if( x < 20 ){ System.out.print("这是 if 语句");

  • Java控制语句之if、switch语句

    java if语句 Java控制语句分为三大类:①顺序结构:②选择结构:③循环结构. -------------------------------------------------------------------------------- 选择结构又分为:①单选择结构:②双选择结构:③多选择结构. 主要涉及: if_else , switch , while , break 和 continue , for. if单选择结构 对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳

  • Java基础教程_判断语句if else

    与三元运算符相比: 好处:可以简化if else 代码 弊端 因为是一个运算符,所以运算玩必须要有一个结果 以上这篇Java基础教程_判断语句if else就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 详解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 学习笔记(入门篇)_多选择结构switch语句

    多选择结构switch语句 在java中为多路分支选择流程专门提供了switch语句,switch语句根据一个表达式的值,选择运行多个操作中的一个.他的语法形式如下: 复制代码 代码如下: switch(表达式){ case 表达式常量1:语句1: break: case 表达式常量2:语句2: break: ...... case 表达式常量n:语句n: break: [default:语句n+1:] } 其中,一个case表达式常量成为标号,代表一个case分支的入口.switch语句在运行

  • java switch语句使用注意的四大细节

    switch语句的格式如下:(它的功能是选出一段代码执行) 复制代码 代码如下: switch(整数选择因子) { case 整数值1 : 语句; break; case 整数值2 : 语句; break; case 整数值3 : 语句; break; case 整数值4 : 语句; break; case 整数值5 : 语句; break; ... default:语句; } 但是要注意几点如下: 1.switch中case的参数类型只能是int类型,但是放byte,short,char类型的

  • java的if else语句入门指南(推荐)

    条件语句,是程序中根据条件是否成立进行选择执行的一类语句,这类语句在实际使用中,难点在于如何准确的抽象条件.例如实现程序登录功能时,如果用户名和密码正确,则进入系统,否则弹出"密码错误"这样的提示框等. 本部分对于条件语句的介绍,重点在于语法讲解和基本的使用,更详细的使用参看后续的综合示例部分. 在Java语言中,条件语句主要有两类语法:if语句和switch语句. 1 .if语句 if关键字中文意思是如果,其细致的语法归纳来说总共有三种:if语句.if-else语句和if-else

  • Java中switch判断语句典型使用实例

    下面一个是典型的switch语法运用的例子. import java.util.Scanner; public class JudgeMonth { public static void main(String[] arg){ Scanner scan = new Scanner(System.in); System.out.println("请输入月份:"); int month = scan.nextInt(); switch(month){ case 12: case 1: ca

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

    if语句使用布尔表达式或布尔值作为分支条件来进行分支控制,其中if语句有如下三种形式: 第一种形式: if ( logic expression ) { statements- } 第二种形式: if (logic expression) { statements- } else { statements- } 第三种形式: if (logic expression) { statements- } else if(logic expression) { statements- } -//可以有

  • Shell中的单中括号和双中括号的用法详解

    SHELL是UNIX系统的用户与操作系统之间的一种接口.它既是UNIX系统的命令解释程序,又是一种高级的命令程序设计语言.作为命令解释程序,SHELL接收用户输入的命令,将命令翻译成一个动作序列,然后调用系统过程执行这条命令.作为命令程序设计语言,SHELL具有一般高级语言的许多特征,如变量定义.赋值.条件和循环语句等.用户可以利用SHELL的这些功能将多条命令组织成一个命令程序,以完成某种特定的任务.这个命令程序称为SHELL程序或SHELL过程.本文阅读需要有bash和shell编程的基础.

  • Oracle中的INSTR,NVL和SUBSTR函数的用法详解

    Oracle中INSTR的用法: INSTR方法的格式为 INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 在字符串中查找'OR',从第三个字符位置开始查找"OR",取第三个字后第2个匹配项的位置. 默认查找顺序为从左到右.当起始位置为负数的时候,从右边开始查找. 所以SELECT I

  • iOS 泛型中nullable、null resettable、null kindof 用法详解

    iOS9新出的关键字:用来修饰属性,或者方法的参数,方法的返回值 iOS9新出关键字nonnull,nullable,null_resettable,_Null_unspecified 需要注意的一点只能修饰对象,不能修饰基本数据类型. 虽然在项目的代码编写中不会经常用到,不过在调用苹果系统方法的时候还是会经常遇到,需要做一个总结 nullable作用:表示可以为空 nullable书写规范: // 方式一: @property (nonatomic, strong, nullable) NSS

  • Oracle中的translate函数和replace函数的用法详解

    translate函数语法: translate(expr, from_strimg, to_string) 简介: translate返回expr,其中from_string中的每个字符的所有出现都被to_string中的相应字符替换.expr中不在from_string中的字符不会被替换.如果expr是一个字符串,那么你必须把它放在单引号中. from_string的参数可以包含比to_string更多的字符.在这种情况下,from_string末尾的多余字符在to_string中没有对应的

  • Python中的CSV文件使用"with"语句的方式详解

    是否可以直接使用with语句与CSV文件?能够做这样的事情似乎很自然: import csv with csv.reader(open("myfile.csv")) as reader: # do things with reader 但是csv.reader不提供__enter__和__exit__方法,所以这不行.但是我可以分两步做: import csv with open("myfile.csv") as f: reader = csv.reader(f)

  • Java中的拦截器、过滤器、监听器用法详解

    本文实例讲述了Java中的拦截器.过滤器.监听器用法.分享给大家供大家参考,具体如下: 一.拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方 法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作. 1.Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,

  • 解析C++编程中的选择结构和switch语句的用法

    C++编写选择结构的程序 下面,通过两个实例来说明如何编写较为复杂的C++程序. [例]编写程序,判断某一年是否为闰年. #include <iostream> using namespace std; int main( ) { int year; bool leap; cout<<"please enter year:";//输出提示 cin>>year; //输入年份 if (year%4==0) //年份能被4整除 { if(year%100

  • Android编程中沉浸式状态栏的三种实现方式详解

    本文实例讲述了Android编程中沉浸式状态栏的三种实现方式.分享给大家供大家参考,具体如下: 沉浸式状态栏 Google从android kitkat(Android 4.4)开始,给我们开发者提供了一套能透明的系统ui样式给状态栏和导航栏,这样的话就不用向以前那样每天面对着黑乎乎的上下两条黑栏了,还可以调成跟Activity一样的样式,形成一个完整的主题,和IOS7.0以上系统一样了. 首先看下效果 首先看下第一种方式 系统的方式沉浸式状态栏实现 步奏一 //当系统版本为4.4或者4.4以上

  • 如何让js中的if判断如丝般顺滑详解

    目录 前言 代码实现 思路一 思路二 总结 参考文档 前言 项目中的一个小需求点,点击按钮,验证几十个条件框,判断所有条件框是否填写(选择)过数据(至少有一个条件判断为真)再执行对应操作 判断的条件框包含 Radio 单选框,Checkbox 多选框,Input 输入框,InputNumber 计数器, Select 选择器, Switch 开关等 项目使用的 Element 组件库  V2.15.6 不同条件对应的数据类型以及默认值 Radio 单选框  string  '' Checkbox

随机推荐