Java 基础——流程控制

266 阅读4分钟

这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战

作为一名测试人员,在进阶的过程中需要学习一些必备的开发知识,比如对于 Java 基础知识,Python 自动化知识等的了解。这些都是从功能测试进阶到测试开发的必要过程,基本上属于进阶必备。

流程控制

程序是我们逻辑的实现,对于逻辑的实现需要进行严格的流程控制,通过特点的关键字实现流程控制。在 Java 开发语言中,常见的流程控制关键字有:if、while、do..while、for 等。按照用处划分:

  • 顺序结构,按照顺序执行,只执行一次
  • 分支结构/选择结构(if,switch)
  • 循环结构(while,do-while,for) 三种结构的执行效果:

image.png

顺序结构

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

示例代码如下:

public class HelloWorld {

    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        System.out.println("z = x+ y " + ( x+ y));
        System.out.println("x += z " + (x += y));
    }
}

在上面的代码中,程序会按照先后顺序来执行,首先执行x变量的定义和赋值,然后执行y变量的定义和赋值,第三步中进行结果的输出。

分支结构/选择结构

分支选择结构也成为选择语句,通常用于我们的条件判断和逻辑选择,常见的操作有 if..else、switch..case 两种。

if..else

通常一个 if 语句包含一个布尔表达式和一条或多条语句。常见的定义结构如下:

if(布尔表达式) { 
    //如果布尔表达式为true将执行的语句 
}

如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。

简单看一个示例:

public class HelloWorld {

    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        if (x > 5) {
            System.out.println("z = x+ y " + ( x+ y));
        }
    }
}

在上面的示例中,如果 x 的值大于 5,则输出 x + y 的值,这里由于 x=10,满足了 if 中的判断条件,所以 if 的判断条件就是为真,那么就会执行 if 语句中的代码块,输出对应的结果。

注意在实际的开发中,通常 if 后面还会跟 else 语句以及 else..if 进行搭配使用,用于更复杂的逻辑判断。示例如下:

public class HelloWorld {

    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        if (x > 5) {
            System.out.println("z = x+ y " + ( x+ y));
        } else {
            System.out.println("x - y " + ( x - y));
        }
    }
}

在上面的示例中,如果 x 的值大于 5,则输出 x + y 的值,这里由于 x=10,满足了 if 中的判断条件,所以 if 的判断条件就是为真,那么就会执行 if 语句中的代码块,输出对应的结果。加入 x 的值不大于 5,则会执行 else 中的逻辑,输出 x - y 的值。

switch

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。switch 的基本语法格式如下:

switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

switch case 语句有如下规则:

  • switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
  • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
  • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。 下面简单介绍一个示例:
public class HelloWorld {

    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        switch (x) {
            case 1:
                System.out.println("x = 1");
                break;
            case 10:
                System.out.println("x = 10");
                break;
        }
    }
}

循环结构

顺序结构的程序语句只能被执行一次,如果业务需求想要同样的操作执行多次,就需要使用循环结构。Java中有三种主要的循环结构:

  • while 循环
  • do…while 循环
  • for 循环

while 循环

在定义 while 循环时,格式如下:while(条件表达式),如果条件表达式成立,则执行while 循环内部的实现。

示例代码:

public class HelloWorld {

    public static void main(String[] args) {
        int x = 10;
        while (x > 10) {
            System.out.println(x);
            x--;
        }
    }
}

在 while 循环体内不断输出 x 的值,然后进行自减操作。当 x不大于 10 时则跳出循环。

同样针对上面的逻辑,我们也可以改成使用 for 循环来实现。示例如下:

public class HelloWorld {

    public static void main(String[] args) {
        int x = 10;
        for(int i = 0;i< x;i++) {
            System.out.println(i);
        }
    }
}

两种实现方式都能达到同样的目的。所以在实际的开发或使用中,就可以让我们根据特定的需求来进行实现,找到较好的实现方式。