Java基础知识总结-Java流程控制语句之if、switch

声明:原文出处已在文末标出,本人出于学习,对其做了整理,收集干货,不作商业用途!

 

从结构化程序设计角度出发,程序有 3 种结构:顺序结构、选择结构和循环结构。若是在程序中没有给出特别的执行目标,系统则默认自上而下一行一行地执行该程序,这类程序的结构就称为顺序结构。

按照语句的组成部分,可以将顺序结构中的语句分为表达式语句、空语句和复合语句 3 大类。

在 Java 中,语句是最小的组成单位,每个语句必须使用分号作为结束符。为了使程序语句排列得更加美观、容易阅读和排除错误,一般使用如下规则格式化源代码:

  • 在一行内只写一个语句,并采用空格、空行来保证语句容易阅读。
  • 在每个复合语句内使用 Tab 键向右缩进。
  • 大括号总是放在单独的一行,便于检查是否匹配。

空语句

所谓空语句(Empty Statement),它在程序中什么都不做,也不包含实际性的语句。在程序中,空语句主要作为空循环体。

空语句的语法格式如下:

  1. ; // 其实就是一个分号

执行一个空语句就是将控制转到该语句的结束点。

表达式语句

在很多高级语言中,有专门的赋值语句。而在 Java 中将赋值作为一个运算符,因此只有赋值表达式。在赋值表达式后面添加分号就成了独立的赋值表达式语句。这些表达式能够被 Java 编译器识别,但是由于没有对程序进行任何操作,因此无任何意义。

复合语句

复合语句又称为语句块,是很多个语句的组合,从而可以将多个语句看作单个语句。
复合语句的语法格式如下:

{

      statement-list // 语句列表

}

statement-list 是由一个或者多个语句组成的列表,如果不存在 statement-list,则称该语句块是空的。

它的执行规则如下:

  • 如果语句块是空的,控制转到语句块的结束点。
  • 如果语句块不是空的,控制转到语句列表。当控制到达语句列表的结束点时,控制转到语句的结束点。

 

Java if else语句详解

if 语句是使用最多的条件分支结构,它属于选择结构(也叫分支结构),也可以称为条件语句。

单条件if 语句

if ( 条件表达式) {
    语句块;
}

其中“条件表达式”和“语句块”是比较重要的两个地方:

  1. 条件表达式:条件表达式可以是任意一种逻辑表达式,最后返回的结果必须是一个布尔值。取值可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式。如果条件为真,那么执行语句块;如果条件为假,则语句块将被绕过而不被执行。
  2. 语句块:该语句块可以是一条语句也可以是多条语句。如果仅有一条语句,可省略条件语句中的大括号{}。

if 条件语句的运行流程如图 1 所示:


                                                  图1  if 语句执行流程图

双条件 if 语句

if ( 表达式) {
    语句块1;
} else {
    语句块2;
}

在上述语法格式中,如果 if 关键字后面的表达式成立,那么就执行语句块 1,否则的话则执行语句块 2,其运行流程如图 2 所示。


                                  图2  if…else 运行流程

多条件 if 语句

f…else if 多分支语句的语法格式如下所示:

if(表达式1){
    语句块1;
}else if(表达式2){
    语句块2;
}
...
else if(表达式n){
    语句块n;
}else{
    语句块n+1;
}

在上述语法格式中,使用 if…else if 语句时,依次判断表达式的值,当某个分支的条件表达式的值为 true 时,则执行该分支对应的语句块,然后跳到整个 if 语句之外继续执行程序。如果所有的表达式均为 false,则执行语句块 n+1,然后继续执行后续程序,其运行流程如图 3 所示:


                                      图3  if…else if 语句的执行流程

嵌套 if 的使用

if 语句的用法非常灵活,不仅可以单独使用,还可以在 if 语句里嵌套另一个 if 语句。同样,if…else 语句和 if…else if 语句中也可以嵌套另一个 if 结构的语句,以完成更深层次的判断。

嵌套 if 的语法格式如下:

if(表达式1)
{
    if(表达式2)
    {
        语句块1;
    }
    else
    {
        语句块2;
    }
}
else
{
    if(表达式3)
    {
        语句块3;
    }
    else if( 表达式4)
    {
        语句块4;
    }
    else
    {
        if( 表达式n)
        {
            语句块n;
        }
        else
        {
            语句块n+1;
         }
    }
}

在上述格式中,应该注意每一条 else 与离它最近且没有其他 else 对应的 if 相搭配,其执行流程如图 4 所示。


                                   图4  嵌套 if 语句执行流程

Java switch case语句详解

switch 语句能解决 if 分支过多的情况,提供一种简洁的方法来处理对应给定表达式的多种情况。

基本语法形式如下所示:

switch(表达式){
    case 值1:
        语句块1;
        break;
    case 值2:
        语句块2;
        break;
    …
    case 值n:
        语句块n;
        break;
    default:
        语句块n+1;
    break;
}

其中,switch、case、default、break 都是 Java 的关键字。
  • switch:表示“开关”,这个开关就是 switch 关键字后面小括号里的值,小括号里要放一个整型变量或字符型变量。
  • case:表示“情况,情形”,case 后必须是一个整型和字符型的常量表达式,通常是一个固定的字符、数字,例如 10、'a'。case 块可以有多个,顺序可以改变,但是每个 case 后的常量值必须各不相同。
  • default:表示“默认”,即其他情况都不满足。default 后要紧跟冒号,default 块和case 块的先后顺序可以变动,不会影响程序执行结果。通常,default 块放在末尾,也可以省略不写。
  • break:表示“停止”,即跳出当前结构。switch 语句在其开始处使用一个简单的表达式。表达式的结果将与结构中每个 case 子句的值进行比较。如果匹配,则执行与该 case 关联的语句块。语句块以 case 语句开头,以 break 语句结尾,然后执行 switch 语句后面的语句。如果结果与所有 case 子句均不匹配,则执行 default 后的语句,

其运行流程如图 1 所示:


                                        图1  switch 语句执行流程图

if 语句和 switch 语句的区别

if 和 switch 语句都表示条件语句,可以从使用效率和实用性两方面加以区分。

1. 从使用效率上区分

从使用效率上区分,在对同一个变量的不同值作条件判断时,既可以使用 switch 语句,也可以使用 if 语句。使用 switch 语句的效率更高一些,尤其是判断的分支越多,越明显。

2. 从实用性上区分

从语句的实用性角度区分,switch 语句不如 if 条件语句,if 语句是应用最广泛和最实用的语句。

3. 何时使用 if 语句和 switch 语句

在程序开发的过程中,何时使用 if 语句和 switch 语句,要根据实际情况而定,应尽量做到物尽其用。不能因为 switch 语句的效率高就一直使用,也不能因为 if 语句常用就不用 switch 语句。要根据实际情况,具体问题具体分析,使用最适合的条件语句。

一般情况下,对于判断条件较少的,可以使用 if 条件语句,但是在实现一些多条件的判断中,最好使用 switch 语句。

 

转载:http://c.biancheng.net/view/724.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值