控制语句与执行流程

  • Post author:
  • Post category:其他


1,if-else



if-else


语句是控制程序流程的最基本的形式。


else


是可选的。


if





else


后面跟的是用分号结尾的简单语句。下面的


test()


方法简单阐述


if-else


的表现形式及其现象。

public class test {
    static int result = 0;
    static void test(int number1, int number2){
        if(number1 > number2)
            result = +1;
        else if(number1 < number2)
            result = -1;
        else
            result = 0;
    }
    public static void main(String[] args) {
        test(10, 5);
        System.out.println(result);
        test(5, 10);
        System.out.println(result);
        test(5, 5);
        System.out.println(result);
    }
}
  • 输出内容为:

    1

    -1

    0
  • 其中在


    test()


    中间部分可以看到一个“


    else-if


    ”,这个是一个else后面紧跟另一个新的


    if


    语句。

2,迭代



  • while、do-while





    for


    用来控制循环,有时将他们划分为迭代语句。语句会重复执行,知道起控制作用的布尔表达式得到“假”的结果为止。

3,while语句



while


循环语句格式如下:

whileBoolean-expression)
   statement
  • 当循环开始的时候,会先计算一下布尔表达式的值;而在语句的下一次迭代开始前会再计算一次。也就是说


    while


    语句在进入循环体之前要先判断条件是否成立,如果成立的话则进入循环体。

例如:

public static void main(String[] args) {
        int i=2;
        while(i<3){
            i+=1;
        }
        System.out.println(i);
    }
  • 显然的是输出结果为


    3



4,do-while



do-while


格式如下:

do
  statement
while(Boolean-expression);
  • do-while的语句至少会执行一次,即便表达式的值为false。也就是说对于do…while语句,不管条件是否成立都要先执行一遍。

简单示例如下:

public static void main(String[] args) {
        int i=2;
        do{
            i+=1;
        }
        while(i<3);
        System.out.println(i);
    }
  • 运行结果为


    3




while循环是先判断后循环 。





do–while循环是先循环后判断。





在实际应用中,while比do-while更常用。


5,for



for


循环可能是最经常用的迭代形式,这种在第一次迭代之前要进行初始化。随后进行条件测试,而在每一次迭代结束时,进行某种形式的“步进”。


for


循环格式如下:

for(initialization;Boolean-expression;step)
  statement


  • 初始化表达式、布尔表达式或者步进都可以为空


    。每次迭代前会测试布尔表达式。若为

    false

    ,就会执行


    for


    语句后面的代码,每次执行结束,会执行一次步进。
  • 在初始化不分实际上可以拥有任意数量的具有相同类型的变量定义。在一个控制表达式中,定义多个变量的这种能力值限于


    for


    循环适用。

下面是简单示例:

public static void main(String[] args) {
        int i;
        for(i=0;i<=100;i++){
            System.out.println(i+" ");
        }
    }
  • 打印结果为:0~100 这101个数字。

6,Foreach

foreach是一种更加简洁的for语法用于数组和容器,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。

foreach基本语法:

for(float x:f){
}

下面是foreach案例:

public static void main(String[] args){
        int[] a = new int[10];
        for(int i=0;i<10;i++){
            a[i] = i;
        }
        for(int i:a){
            System.out.print(i+" ");
        }
    }
  • 输出结果为:


    0 1 2 3 4 5 6 7 8 9



foreach


也适用于任何


Iterable


对象。在录入代码的时候可以节省时间,阅读的时候也比较容易。


7,return



return


关键字有两方面的用途:一方面制定一个方法的返回值(假设它没有


void


返回值),另一方面它会导致当前的方法退出,并返回那个值。

示例如下:

public class test {
    static int result = 0;
    static void test(int number1, int number2){
        if(number1 > number2)
            result +1;
        else if(number1 < number2)
            result -1;
        else
            result 0;
    }
    public static void main(String[] args) {
        test(10, 5);
        test(5, 10);
        test(5, 5);
    }
}
  • 输出内容为:

    1

    -1

    0

如果在


void


的方法中没有


return


语句,那么在该方法的结尾会有一个隐式的return,因此在方法中并非总是要有一个return语句。但是,如果一个方法声明它将返回void之外的其它东西,就必须确保每一条代码都将返回一个值。


8,break和continue

在任何的迭代语句主体部分,都可以用


break





continue


控制循环流程。其中


break


用于强行退出循环,不执行循环中剩余的语句。而


continue


则停止执行当前的迭代,然后退出循环起始处,开始下一次迭代。

示例:

public class test1 {
    public static void main(String[] args){
        for(int i=0;i<100;i++){
            if(i==66)
                break;
            if(i % 9 != 0)
                continue;
            System.out.print(i+" ");
        }
    }
  • 输出结果为:0 9 18 27 36 45 54 63
  • 分析:在整个


    for


    循环中,


    i


    的值永远不会达到


    100


    ;因为


    i


    一旦达到


    66





    break


    语句就会中断循环。通常,只有在不知道中断条件何时满足时,才需要这样使用


    break


    。只要


    i


    不能被


    9


    整除,


    continue


    语句就会使执行过程返回到循环的最开头(这就会使


    i


    值递增)。如果能够整除,则将值显示出来。



return,break、continue表示这个分支无需任何测试就可以发生。


9,goto语句



goto


起源于汇编语言的程序控制,若条件A成立,则跳到这里;否则跳到那里。这里不做过多阐述。


10,switch



switch


有时也被划归为一种


选择语句


。根据整数表达式的值,


switch


语句可以从一系列代码中选择一段去执行。

格式如下:

switch(integral-selector) {
  case integral-value1 : statement;break;
  case integral-value2 : statement;break;
  case integral-value3 : statement;break;
  case integral-value4 : statement;break;
  case integral-value5 : statement;break;
  ...
  default: statement;
}


  • integral-selector


    (整数选择因子)是一个能够产生整数值的表达式,


    switch


    能将这个表达式的结果与每个


    integral-value


    (整数值)进行比较。若相符,执行对应语句(单一语句或者多条语句,不需要括号)。若没有相符的,执行


    default


    (默认)语句。
  • 上面每个


    case





    break


    结尾,这样可以使执行流程跳转至


    switch


    主题的末尾。这是构建


    switch


    语句的一种传统方式,但是


    break


    是可选的。若省略


    break


    ,会继续执行后面的


    case


    语句,直到一个


    break


    为止。最后的


    default


    没有


    break


    语句,因为执行流程默认已经到了


    break


    的跳转目的地。


  • switch


    语句实现多路选择,但它要求选择因子必须是


    int





    char


    这样类型的整数值。对于非整数类型,则必须使用一系列的


    if


    语句。


  • switch


    运用:
public class test1 {
    public static void main(String[] args){
        int x = 1, y = 2;
        char ch = '+';
        switch (ch) {
            case '+':
                System.out.println("x+y=" + (x + y));
                break;
            case '-':
                System.out.println("x-y="+(x-y));
                break;
            case '*':
                System.out.println("x*y="+(x*y));
                break;
            case '/':
                System.out.println("x/y="+(x/y));
                break;
            default:
                System.out.println();    
        }
    }
  • 运行结果为:


    x+y=3



case


语句可以堆叠在一起,为一段代码形成多重匹配,也就是只要符合多种条件的一种,就执行那段特别的代码。这时要将


break


语句置于特定


case


的末尾,否则控制流程会简单下移,处理下面的


case




版权声明:本文为lm_0921_miaodameng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。