if语句

这章节给大家介绍一下Java中经常使用的if条件语句是如何使用的和在项目开发过程中if语句的注意事项。

1.首先就是最基础的写法if(boolean类型) 和if(boolean类型)-else。下面看看具体案例是怎么写的:
        //控制程序流程最基本的形式 if语句 if-else if-else if-else if
        if(true){
            System.out.println("我是最基础的if条件语句的写法");
        }
        if(true){
            System.out.println("我是最基础的if-else条件语句的写法");
        }else{
            System.out.println("false");
        }

        else{
            System.out.println("else语句不能脱离if而单独存在,不然会发生编译错误!");
        }
这里需要注意的是:正如案例中介绍的那样,else是不能单独存在的,否则会编译出错。还有就是if中是boolean类型的,不能使用其他类型。
2.如果是想要判断多个条件的情况下可以使用if-else if-else这种结构来,下面看看具体案例介绍:
        //if条件语句中最复杂的写法:if-else if-if。
        // 这里有一点需要注意的是如果前面哪个if或者else if为真的话,后面的条件就不会进入其中了。
        if(true){
            System.out.println("first if");
        }else if(true){
            System.out.println("second if");
        }else if(true){
            System.out.println("third if");
        }else{
            System.out.println("fourth if");
        }
这里需要注意的是:如果有一个语句是true情况,后面的语句就不会在继续执行了。
3.如果想顺序执行多个条件又该怎么办呢,这里我们可以使用多个if语句来实现。下面看看具体案例是如何实现的:
        //多个if可以顺序执行,而且互相之间也不会相互影响。
        if(true){
            System.out.println("first if");
        }
        if(true){
            System.out.println("second if");
        }
        if(true){
            System.out.println("third if");
        }
        if(true){
            System.out.println("fourth if");
        }
这里需要注意的是:不管前面哪个if语句是true,都不会影响后面的if语句,如果if为true还是会继续执行的。
4.如果想要多重条件判断呢,这里我们可以使用if的嵌套使用方法。下面看看具体案例介绍:
        //多重if判断语句的使用
        if(true){
            System.out.println("first Sentence");
            if(true){
                System.out.println("second Sentence");
                if(true){
                    System.out.println("third Sentence");
                }
            }
        }
5.如果想要if-else和if混合使用呢,我们又该如何编写呢?下面看看具体案例介绍:
        //if-else 和if混搭使用。这个时候要搞清楚else是属于哪个if的。这里else是紧接着上面一个if的else。
        if(true){
            System.out.println("one");
        }
        if(true){
            System.out.println("two true");
        }else{
            System.out.println("two false");
        }

        if(true) {
            System.out.println("four");
        }
这里需要注意的是:else之和它最近的if相互关联,和其它的都没有任何关系。
6.if的类型就这么几种,现在举个例子总结一下。下面看具体案例:
        //if的用法差不多就这几种,现在给大家举一个具体例子来介总结一下if的使用方法。
        String name="tom";
        int age=20;
        char sex='男';
        if(name.equals("tom")){
            if(sex=='男'){
                if(age>18){
                    System.out.println("tom男并且已经成年了");
                }else{
                    System.out.println("tom男但是未成年了");
                }
            }else{
                System.out.println("tom是女的");
            }
        }else if(name.equals("jom")){
            System.out.println("我是jom");
        }else if(name.equals("fake")){
            System.out.println("我是fake");
        }else{
            System.out.println("上面的那些名字我都不是,我是其他的名字");
        }
7.if中一些注意事项介绍,下面看看具体的案例:
        //if条件里面必须是boolean类型,如果运算后的结果是boolean类型也是可以的。
        //但是严禁使用c语言中的数字例如:if(1)这个是编译不通过的。Java语法是不支持这个情况的。

        if(2>1){
            System.out.println("因为2>1所以返回的true类型的。");
        }

//        if(1){
//            System.out.println("因为1代表数字不是boolean所以这里编译不通过。");
//        }

        //下面说下if在使用过程中的注意事项,
        // 1.在项目实际开发中if语句尽量不要嵌套太多层,这样可读性会大大的降低。
        // 2.最后一个else使用的过程中要考虑清楚,因为如果你要是if条件考虑不全,错误的情况下都会在else中执行。
        // 3.在使用equals中要格外小心,因为如果"value1".equals(value2) value1为空的情况就会报错。
        // 4.在考虑多个判断的时候一定要分清你是只想判断出一个结果,还是返回多个结果的。
        //也就是if-else if-else 和多个if if if之间选择。
第一种形式:
?
1
2
3
4
5
6
7
if ( logic expression )
 
{
 
statements…
 
}

  第二种形式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (logic expression)
 
{
 
statements…
 
}
 
else
 
{
 
statements…
 
}

  第三种形式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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后的语句块只有一行语句时,则可以省略花括号,因为单行语句本身就是一个整体,无须花括号来把它们定义成一个整体。下面代码完全可以正常执行(程序清单同上):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//定义变量a ,并为其赋值
 
int a = 5 ;
 
if (a > 4
 
//如果a>4,执行下面的执行体,只有一行代码作为代码块
 
System.out.println( "a大于4" );
 
else
 
//否则,执行下面的执行体,只有一行代码作为代码块
 
System.out.println( "a不大于4" );

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//定义变量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块后有多条语句作为条件执行体,如果省略了这个条件执行体的花括号,则会引起编译错误,看下面代码(程序清单同上):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//定义变量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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值