目录
1.顺序结构
顺序结构比较简单,按照代码书写的顺序一行一行执行。
2.分支结构
2.1 if语句
if语句是Java中最常用和基本的逻辑控制语句之一。它用于根据条件判断来执行不同的代码块。if语句的基本语法如下:
if (条件) {
// 语句
}
条件是一个布尔表达式,当条件为true时,执行if语句块中的代码。如果条件为false,则跳过if语句块中的代码继续执行后面的代码。
if语句也可以和else关键字一起使用,通过else语句指定在条件不满足时要执行的代码块。下面是带有else的if语句的例子:
if (条件) {
// 语句1
}
else {
// 语句2
}
当条件为true时,执行if语句块中的代码;当条件为false时,执行else语句块中的代码。
在某些情况下,可能需要对多个条件进行判断。可以使用else if语句来实现多个条件判断。下面是带有多个else if的if语句的例子:
if (条件1) {
// 在条件1满足时执行的代码
}
else if (条件2) {
// 在条件2满足时执行的代码
}
else if (条件3) {
// 在条件3满足时执行的代码
}
...
else {
// 在所有条件都不满足时执行的代码
}
在这个例子中,如果条件1满足,则执行条件1对应的代码块;如果条件1不满足但条件2满足,则执行条件2对应的代码块;以此类推。如果所有条件都不满足,则执行else语句块中的代码。
通过使用if语句,可以根据不同的条件来执行不同的代码块,从而实现灵活的程序控制。
注意:if / else 语句中可以不加 大括号 . 但是也可以写语句(只能写一条语句).
2.2 switch 语句
switch (表达式) {
case 值1:
// 在值1匹配时执行的代码
break;
case 值2:
// 在值2匹配时执行的代码
break;
...
default:
// 在所有值都不匹配时执行的代码
break;
}
1. 先计算表达式的值
2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
3. 当表达式的值没有与所列项匹配时,执行default
注意:
- 多个case后的常量值不可以重复
- switch的括号内只能是以下类型的表达式:
- 基本类型:byte、char、short、int,注意不能是long类型
- 引用类型:String常量串、枚举类型
Switch语句可以更清晰地组织多个条件判断,并且可以提高代码的可读性和可维护性。但需要注意的是,Switch语句只能用于离散的取值,不能用于范围判断或复杂的条件判断。
3.循环结构
3.1 while 循环
Java中的while循环是一个重复执行一段代码块的控制结构。它的语法如下:
while (条件) {
// 执行的代码块
}
在每次循环开始前,会先检查条件的真假。只要条件为真,循环就会继续执行;当条件为假时,循环就会结束,控制流将跳转到循环后的下一行代码。
以下是一个使用while循环的示例代码:
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
在这个例子中,循环从0开始,每次打印出当前的值,然后将变量i递增1。循环会一直执行,直到i的值不再小于5为止。
需要注意的是,在使用while循环时,一定要确保循环内部的代码可以改变控制条件,否则可能会导致死循环。
3.2 for 循环
Java中的for循环是另一种常用的循环结构。它以一种更简洁的方式来重复执行一段代码块。for循环的语法如下:
for (初始化; 条件; 更新) {
// 执行的代码块
}
其中,初始化部分用于初始化循环控制变量,条件部分用于检查循环是否继续执行,更新部分则用于更新循环控制变量的值。
以下是一个使用for循环的示例代码:
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
在这个例子中,循环从0开始,每次打印出当前的值,然后将变量i递增1。循环会一直执行,直到i的值不再小于5为止。
for循环还可以用来遍历数组或集合等数据结构。例如:
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
在这个例子中,循环依次将数组numbers中的元素赋值给变量number,并执行对应的代码块。循环会遍历数组中的所有元素。
需要注意的是,for循环内部的初始化、条件和更新部分都可以省略,但分号仍然要保留。这样做可以实现更灵活的循环控制。
int i = 0;
for (; i < 5; ) {
System.out.println(i);
i++;
}
在这个例子中,初始化和更新部分都被省略了,但分号仍然要保留。
无论是while循环还是for循环,都可以根据具体的需求选择使用。
3.3 do while 循环
Java中的do-while循环是一种后测试循环结构,它先执行循环体中的代码,然后再检查循环条件。只有在循环体执行完毕后,才会判断条件是否满足,如果满足则继续执行循环,否则结束循环。这意味着do-while循环至少会执行一次循环体。
do-while循环的语法如下:
do {
// 执行的代码块
} while (条件);
以下是一个使用do-while循环的示例代码:
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 5);
在这个例子中,循环会先执行一次循环体,打印出 i 的值,然后将变量 i 递增1。接着会检查条件,如果条件满足(i < 5),则继续执行循环,否则结束循环。
需要注意的是,do-while循环体后面要加上分号。
do-while循环适用于需要至少执行一次循环体的情况,因为它先执行循环体再检查条件。如果条件不满足,循环体的代码仍然会执行一次。
无论是while循环、for循环还是do-while循环,都可以根据具体的需求选择使用。
4.break 和 continue
4.1 break
在Java中,break
是一种控制流语句,用于终止循环或开关语句的执行,并将控制流转移到下一行代码。当break
语句执行时,循环将立即终止并跳出循环体,或者开关语句将立即终止并跳出开关块。
break
语句可以在以下情况下使用:
- 在
for
循环、while
循环和do-while
循环中,用于提前退出循环。 - 在
switch
语句中,用于终止开关块的执行,并跳转到开关块之后的代码。
4.2 continue
在Java中,continue
是一种控制流语句,用于跳过当前循环中的剩余代码,并继续执行下一次循环迭代。当continue
语句执行时,循环将跳过当前迭代中continue
语句之后的代码,并开始下一次迭代。
continue
语句可以在以下情况下使用:
- 在
for
循环、while
循环和do-while
循环中,用于跳过当前迭代的剩余代码,并开始下一次迭代。 - 在嵌套循环中,用于跳过当前内部循环的剩余代码,并继续执行外部循环。
当continue
语句执行时,程序将继续执行下一次循环迭代。这通常用于在循环中使用continue
来跳过某些特定的迭代,以便在满足某些条件时跳过循环的执行。
5.输入输出
5.1 输入
使用 Scanner 读取字符串/整数/浮点数
import java.util.Scanner; // 需要导入 util 包
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
sc.close(); // 注意, 要记得调用关闭方法
// 执行结果
请输入你的姓名:
张三
请输入你的年龄:
18
请输入你的工资:
1000
你的信息如下:
姓名: 张三
年龄:18
工资:1000.0
5.2 输出
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出