【JavaSE成神之路】流程控制语句

简介: 哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路!这一节啊,咱们要学习的内容是流程控制语句。


哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路!

这一节啊,咱们要学习的内容是流程控制语句。

38b432edf25f9d44623a352e8f473331.gif


先来看概念

Java的流程控制语句是指用来控制程序执行流程的语句,它们可以改变程序的执行顺序,使程序更加灵活。Java中的流程控制语句包括:


if-else语句:if-else语句用于检查一个条件是否成立,如果成立,则执行if语句块,否则执行else语句块。


switch语句:switch语句用于检查一个变量的值,如果值与某个case语句的值相等,则执行该case语句块,否则执行default语句块。


for循环:for循环用于重复执行一段代码,它包含一个初始化语句,一个循环条件,一个迭代语句,以及一个循环体。


while循环:while循环用于重复执行一段代码,它包含一个循环条件和一个循环体。


do-while循环:do-while循环用于重复执行一段代码,它包含一个循环条件和一个循环体,但是它会先执行一次循环体,然后再检查循环条件。


break语句:break语句用于终止一个循环,使程序跳出循环体,继续执行循环体后面的语句。


continue语句:continue语句用于跳过当前循环的剩余语句,继续执行下一次循环。


我要告诉大家的是,这些知识虽然掌握起来不难,但却是众多面试题、笔试题的必考题,也是我们实际工作中写业务代码的基石。


是非常非常重要的。


1.if-else语句

if -else语句是Java中的条件判断语句, 用于控制程序的执行流程。 下面是一个简单的if - else语句的例子

int x = 10;
if (x > 5) {
    System.out.println("x is greater than 5");
} else {
    System.out.println("x is less than or equal to 5");
}

上面的代码中, 首先定义了一个变量x, 然后使用if - else语句来判断x的值是否大于5, 如果大于5, 则执行if语句中的代码, 否则执行else语句中的代码。


还有一个用法是elseif


Java中的elseif语句用于在if语句的基础上增加一个或多个条件判断,以便在多个条件之间进行选择。


下面是一个使用elseif语句的示例:

public class ElseIfExample {
    public static void main(String[] args) {
        int age = 20;
        if (age < 18) {
            System.out.println("未成年");
        } else if (age < 30) {
            System.out.println("青年");
        } else if (age < 50) {
            System.out.println("中年");
        } else {
            System.out.println("老年");
        }
    }
}

当你使用elseif的时候,就已经是上面if语句的反例,所以可以不写成 else if (age >= 18 && age < 30)

但是呢,我们依然更推荐你写全了,这样更有可读性。

比如上面的例子改写成这样:

public class ElseIfExample {
    public static void main(String[] args) {
        int age = 20;
        if (age < 18) {
            System.out.println("未成年");
        } else if (age >= 18 && age < 30) {
            System.out.println("青年");
        } else if (age >= 30 && age < 50) {
            System.out.println("中年");
        } else {
            System.out.println("老年");
        }
    }
}

2.switch语句

switch语句是Java中的一种多分支选择结构,它可以根据某个表达式的值来选择执行不同的语句。

2.1、switch语句的语法

switch语句的语法如下:

switch (expression) {
    case value1:
        // code to be executed if expression = value1;
        break;
    case value2:
        // code to be executed if expression = value2;
        break;
        ...
        default:
            // code to be executed if expression doesn't match any case;
}

其中,expression是一个表达式,它的值可以是int、char、byte、short、enum类型,也可以是String类型(从Java 7开始)。 value1、value2等是case子句中的值,它们必须与expression的值类型相同。


break语句是可选的,它用于终止switch语句,以防止执行错误的语句。


default子句是可选的,它用于在expression的值与case子句中的值都不匹配时执行的语句。

2.2 switch语句的注意事项

(1)switch语句中的表达式的值必须是int、char、byte、short、enum类型,或者从Java 7开始支持的String类型。


(2)case子句中的值必须与switch语句中的表达式的值类型相同。


(3)break语句是可选的,它用于终止switch语句,以防止执行错误的语句。


(4)default子句是可选的,它用于在expression的值与case子句中的值都不匹配时执行的语句。


2.3 case穿透

在switch语句中,如果没有使用break语句,则会出现穿透现象,即执行完当前case语句后,会继续执行下一个case语句,直到遇到break语句为止。 例如:

int num = 1;
switch (num) {
    case 1:
        System.out.println("case 1");
    case 2:
        System.out.println("case 2");
    case 3:
        System.out.println("case 3");
        break;
    default:
        System.out.println("default");
}
// 输出结果:
case 1
case 2
case 3

3.for循环

for循环是Java中最常用的循环结构之一,它可以用来重复执行一系列语句。 for循环的语法

for(初始化表达式; 布尔表达式; 更新表达式) {
  // 循环体
}

初始化表达式:在循环开始时执行,一般用于定义和初始化循环控制变量。

布尔表达式:每次循环开始时要检查的条件,如果为true,则继续循环,如果为false,则终止循环。

更新表达式:每次循环结束时要执行的操作,一般用于更新循环控制变量。

for循环的示例:

public class ForLoopExample {
    public static void main(String[] args) {
        // 打印1到10
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}

上面的示例中,我们使用for循环打印1到10。在for循环中,我们首先定义了一个int类型的变量i,并将其初始化为1。然后,我们检查i是否小于等于10,如果是,则执行循环体,否则终止循环。每次循环结束时,我们将i的值加1,以便下次循环时使用。


for循环还可以使用增强for循环,它可以用来遍历数组和集合。


增强for循环的语法:

for(元素类型 变量名 : 集合或数组) {
  // 循环体
}

增强for循环的示例:

public class EnhancedForLoopExample {
    public static void main(String[] args) {
        // 定义一个数组
        int[] numbers = {
            1, 2, 3, 4, 5
        };
        // 使用增强for循环遍历数组
        for (int number: numbers) {
            System.out.println(number);
        }
    }
}

上面的示例中,我们使用增强for循环遍历了一个数组。在增强for循环中,我们定义了一个变量number,它的类型与数组中元素的类型相同,每次循环时,number变量都会被赋值为数组中的一个元素,然后执行循环体。


4.while循环

while循环是一种基本的循环结构,它的基本结构如下:

while(条件表达式)
{
  循环体语句;
}

while循环的执行过程是:首先检查条件表达式的值,如果为真,则执行循环体语句,然后再次检查条件表达式的值,如果为真,则再次执行循环体语句,以此类推,直到条件表达式的值为假时,结束循环。 下面是一个while循环的例子:

int i = 0;
while(i < 10)
{
  System.out.println(i);
  i++;
}

上面的例子中,变量i的初始值为0,条件表达式i < 10,循环体语句为System.out.println(i),每次循环结束后,变量i的值会自增1。

5.do while循环

do while循环也是一种基本的循环结构,它的基本结构如下: do { 循环体语句; }while(条件表达式); do while循环的执行过程是:首先执行循环体语句,然后检查条件表达式的值,如果为真,则再次执行循环体语句,以此类推,直到条件表达式的值为假时,结束循环。 下面是一个do while循环的例子:

int i = 0;
do
{
  System.out.println(i);
  i++;
}while(i < 10);

上面的例子中,变量i的初始值为0,条件表达式i < 10,循环体语句为System.out.println(i),每次循环结束后,变量i的值会自增1。


总结


while循环和do while循环都是Java中的基本循环结构,它们的执行过程有一定的区别:while循环首先检查条件表达式的值,如果为真,则执行循环体语句;而do while循环首先执行循环体语句,然后检查条件表达式的值,如果为真,则再次执行循环体语句。


6.break语句

break语句用于终止循环,它会立即跳出循环,并且继续执行循环之后的语句。 语法:

break;


示例:

for(int i=0;i<10;i++){
  if(i==5){
    break;
  }
  System.out.println(i);
}

输出:0 1 2 3 4

7.continue语句

continue语句用于跳过当前循环的剩余语句,并立即开始下一次循环。 语法:

continue;

示例:

1. for(int i=0;i<10;i++){
2.   if(i==5){
3.     continue;
4.   }
5.   System.out.println(i);
6. }

//输出:0 1 2 3 4 6 7 8

8.课后作业

给定一个整数数组,请编写一个程序,找出数组中最大的数字,并输出它的下标。

示例:

输入:[2, 3, 5, 7, 1]

输出:3


相关文章
|
1月前
|
Java 大数据 程序员
我的程序员之路:自学Java篇
我的程序员之路:自学Java篇
|
存储 IDE Java
【JavaSE成神之路】Java面向对象(上)
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java的面向对象。
169 1
|
存储 搜索推荐 IDE
【JavaSE成神之路】一文洞悉Java语言的基本语法
哈喽,我是兔哥,今天就让我们继续这个JavaSE成神之路! 这一节,咱们要学习的内容是Java语言的基本语法,包括变量、常量、数据类型、运算符、流程控制语句、数组、字符串。 这是我们学好Java的基石,万丈高楼平地起的前提就是打好地基。 下面就让我们来一一参悟这些概念吧。
【JavaSE成神之路】一文洞悉Java语言的基本语法
【JavaSE成神之路】一文洞悉Java语言的作用域
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java语言的作用域。
151 0
【JavaSE成神之路】一文洞悉Java语言的作用域
【JavaSE成神之路】一文洞悉Java的方法
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java语言的方法。
【JavaSE成神之路】一文洞悉Java的方法
|
IDE Java 编译器
【JavaSE成神之路】Java面向对象(下)
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容还是Java的面向对象。
116 0
|
Java 编译器
【JavaSE成神之路】可变参数
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java的可变参数。
|
算法 Java
【JavaSE成神之路】数组思考题讲解
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是数组的思考题讲解,也就是上一节我留下的两个小作业。
106 0
|
IDE Java 编译器
【JavaSE成神之路】一文搞定static关键字
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java的static关键字。
111 0
|
Java 数据安全/隐私保护 Android开发
【JavaSE成神之路】聊聊封装这件事
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java的封装。
110 0