哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路!
这一节啊,咱们要学习的内容是流程控制语句。
先来看概念
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