流程控制-块作用域与if语句

阅读:146

任何编程语言都需要各种流程控制语句,这点基本上都大同小异。在学习流程控制语句前,先看下块作用域。

1.块作用域

块(block),是指由一对大括号括起来的包含若干条Java代码的语句。这里需要注意两点:

  1. 块确定了变量的作用域;
  2. 块是可以嵌套的。
public static void main(String[] args){
       int x;
        {// block start
            int y;
        }//block end
    }

在此块中,y可以使用,在块外y是不能使用,因为作用域是在块中。

public static void main(String[] args){
       int x;
        {
            int y;
            int x;
        }
    }

看看上面的代码有什么错误?

不能在嵌套的两个块中声明相同名字的变量。

2.if条件语句

if条件语句的格式为:

if(条件) 语句

当条件为true时,执行后面的语句,当然如果语句为多行,你可以使用大括号括起来。但是,当只有一行请不要用大括号括起来了,这是个很好的编程习惯,最起码不会大括号满天飞,让代码难以阅读。请看下面的例子:

public class IfTest {
    public static void main(String[] args){
      int i = 10;

      if(i >= 10){
          System.out.println("i的值大于或等于10");
      }
    }
}

结果输出:i的值大于或等于10。

因为i = 10,条件为true,后面的语句就会执行。

if后面可以跟上else,else是可选的,格式如下:

if(条件) {
  //语句1
}else {
  //语句2
}

如果条件成立,执行语句1,条件为false时,执行语句2。

看如下代码:

public class IfElseTest {
    public static void main(String[] args){
      int i = 9;

      if(i >= 10){
          System.out.println("i的值大于或等于10");
      }else {
          System.out.println("i的值小于10");
      }
    }
}

结果输出:i的值小于10

由于i >= 10为false,所以执行了else里的语句。

同样,在实际的编码中,if和else用的比较多,也使得代码可读性差。可以通过设计模式,来避免太多的if判断。

 

public class IfElseIfTest {
    public static void main(String[] args) {

        String from = "north";

        if (from.equals("east")) {
            System.out.println("you are from east!");
        } else if (from.equals("south")) {
            System.out.println("you are from south!");
        } else if (from.equals("west")) {
            System.out.println("you are from west!");
        } else {
            System.out.println("你是东北人!");
        }
    }
}

if后面可以跟多个else if(条件),最后有一个else,当然else也是可以省略的。

先判断if后条件,然后逐个判断else if后的条件,从前往后,如果有一个条件成立,则执行括号内的语句,不再往下执行,结束。如果前面都不满足,则默认执行else里的语句。

执行结果为:你是东北人!


© 版权归知否网(zhifou.net)所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权知否网将依法追究其法律责任。
读后有收获,请作者喝杯咖啡

精彩留言

发表评论
更多精彩内容,请关注微信公众号