阿药陪你学Java(第四讲)

本文详细介绍了Java中的流程控制语句,包括if…else语句的逻辑结构、switch语句的简洁比较,以及for和while循环的用法和特点,帮助读者理解并掌握这些基本编程结构。
摘要由CSDN通过智能技术生成

第四讲:流程控制

Java为我们提供了多种流程控制语句,在使用时,我们可以视实际情况而定。

if…else语句

if…else语句一般用于简单、少量的条件判断时,根据判断结果选则要执行的分支。

语法:
if (expression) {
    // 语句
    if (expression) {
        // 语句
    } else if (expression) {
        // 语句
    } else {
        // 语句
    }
} else {
    // 语句
}

示例:
public class Demo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        if (a > b) { // 1.先执行if判断,如果满足条件,执行分支
            System.out.println("a > b");
        } else if (a == b) { // 2.if条件不满足,执行else if 判断,如果满足条件,执行分支
            System.out.println("a = b");
        } else { // 3.else if条件不满足,执行else分支
            System.out.println("a < b");
        }
    }
}

输出:
a < b

if…else语句是一种按顺序执行的语句,简单来说它就是从上到下依次判断条件,只要某个条件判断后为true就执行其内部代码,后面的判断条件不再执行;只有所有的if和else if都不满足条件时,最后才会执行else。

注意:else不需要判断条件,它的条件默认是上面所有if和if else都不满足条件的部分。

switch语句

switch语句类似与if…else语句,但是代码更加简洁,可读性更好。

语法:
switch (variable/expression) {
	case value1:
		// 语句
		break;
	case value2:
		// 语句
		break;
	default:
		// 语句
}

示例:
public class Demo {
    public static void main(String[] args) {
        int a = 10;
        switch (a) {
            case 10:
                System.out.println("a=" + a);
                break;
            case 20:
                System.out.println("a=" + a);
                break;
            default:
                System.out.println("a=" + a);
        }
    }
}

输出:
a=10

switch的判断条件可以是表达式或变量,然后将其与每个case标签的值或表达式进行比较,当某个case满足条件时,执行内部语句,执行后会通过break跳出整个switch,后面代码不会再执行;只有所有的case都不满足条件时,才会执行默认的default。

注意:case中的语句执行完成后,一定要有break用于跳出整个switch,否则后面的程序依然会执行。

示例:
public class Demo {
    public static void main(String[] args) {
        int a = 10;
        switch (a) {
            case 10: // 条件满足
                System.out.println("1. a=" + a); // 输出后没有执行break
            case 20: // 因为在上一个case执行时,条件已经判断为true,这里不会再次判断,而是会直接执行语句
                System.out.println("2. a=" + a); // 输出后没有执行break
            default: // 不再判断条件
                System.out.println("3. a=" + a); // 执行语句
        }
    }
}

输出:
1. a=10
2. a=10
3. a=10
示例:
public class Demo {
    public static void main(String[] args) {
        int a = 10;
        switch (a) {
            case 20: // 执行case时条件不满足
                System.out.println("1. a=" + a); // 语句不执行
            case 10: // 条件满足
                System.out.println("2. a=" + a); // 执行语句,且未执行break跳出
            default: // 不再判断条件
                System.out.println("3. a=" + a); // 执行语句
        }
    }
}

输出:
2. a=10
3. a=10

for循环

在Java中for循环是一种最常用的循环语句,它可以通过循环条件控制代码块的重复执行;只要满足条件就执行代码块,不满足直接跳出。

语法:
for (init; expression; update) {
	// 语句
}

示例:
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 2; i++) {
            System.out.println(i); // 循环输出2次i的值
        }
        System.out.println("end");
    }
}

输出:
0
1
end

示例中for循环的执行流程:

  1. 初始化变量,如int i = 0
  2. 执行条件判断,如i < 2(此时i为0,也就是0 < 2)// 满足条件
  3. 满足条件执行循环体,如System.out.println(i); // 输出0
  4. 执行完循环体后,修改变量,如i++
  5. 执行条件判断,如i < 2(此时i为1,也就是1 < 2)// 满足条件
  6. 满足条件执行循环体,如System.out.println(i); // 输出1
  7. 执行完循环体后,修改变量,如i++
  8. 执行条件判断,如i < 2(此时i为2,也就是2 < 2)// 不满足条件
  9. 不满足条件,跳出循环体

通过上面对for循环的流程介绍可以发现,初始化变量只会执行一次;然后进行条件判断,条件符合执行循环体,否则直接跳出循环;在每次执行完循环体后都会执行一次变量的更新,更新后的变量会再次进行条件判断。

扩展1:for循环中的init,expression,update可以根据实际情况进行添加,可以省略一个、两个、三个都可以,省略expression时就是一个死循环,实际开发过程中要注意。

示例:
public class Demo {
    public static void main(String[] args) {
        int i = 0;
        for ( ; i < 2; i++) {
            System.out.println(i);
        }
        System.out.println("===");
        for ( ; ; ) {
            System.out.println(i);
        }
    }
}

输出:
0
1
===
2
2
2
... // 一直循环输出2

扩展2:for-each循环,一种特殊的for循环,他没有init、expression、update,它的作用就是循环遍历,将一个集合或数组中的值按顺序依次输出。

语法:
for (value : 数组/集合) {
    // 语句
}

示例:
public class Demo {
    public static void main(String[] args) {
        String[] strings = {"a", "b", "c"}; // 字符串类型数组,后面会介绍
        for (String string : strings) {
            System.out.println(string);
        }
    }
}

输出:
a
b
c

while循环

Java中的while循环是一种只有判断条件或表达式的循环,只要满足条件,即可执行循环体;可以在循环体内部改变循环条件,如果不改变循环条件,那这就是一个死循环。

语法:
while (expression) {
    // 语句
}

示例:
public class Demo {
    public static void main(String[] args) {
        int i = 0;
        while (i < 2) {
            System.out.println(i);
            i++;
        }
    }
}

输出:
0
1

while循环的流程:

  1. 先判断条件,如i < 2
  2. 条件满足,执行循环体;条件不满足,跳出循环
  3. 循环体内部改变条件
  4. 再次判断条件

扩展:do-while循环。这是一种先执行语句,再判断条件的循环,如果条件满足再次执行语句,条件不满足则结束循环;使用这种循环可以保证循环中的语句一定会至少执行一次

语法:
do {
	// 语句
} while (expression);

示例:
public class Demo {
    public static void main(String[] args) {
        int i = 0;
        do {
            System.out.println(i);
            i++;
        } while (i < 1);
        System.out.println("end");
    }
}

输出:
0
end
  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值