当谈到循环结构时,Java提供了多种循环结构,可以重复执行特定的代码块。其中包含了下面不同类型的循环结构。
1.1 基本语法
在Java中,for循环的基本语法如下:
for (初始化表达式; 循环条件; 更新表达式) {
// 循环体
}
- 初始化表达式:在循环开始之前执行的语句,通常用于初始化循环变量。
- 循环条件:在每次循环开始之前进行判断的条件,只有当条件为真时,循环才会执行。
- 更新表达式:在每次循环结束之后执行的语句,通常用于更新循环变量的值。
1.2 示例:计算1到10的和
下面是一个使用for循环计算从1到10的和的示例:
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("1到10的和为:" + sum);
运行上述代码,将输出以下结果:
1到10的和为:55
在这个示例中,我们使用for循环将变量 i 从1递增到10,并将每个值加到变量 sum 上。最后,我们打印出 sum 的值,即1到10的和。
1.3 示例:遍历数组
for循环也常用于遍历数组。下面是一个使用for循环遍历数组并打印数组元素的示例:
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
运行上述代码,将输出以下结果:
1
2
3
4
5
在这个示例中,我们定义了一个整型数组 numbers,然后使用for循环遍历数组的每个元素并打印出来。循环变量 i 从0递增到 numbers.length - 1,并使用 numbers[i] 访问每个数组元素。
2.1 基本语法
在Java中,while循环的基本语法如下:
while (循环条件) {
// 循环体
// 更新循环条件
}
- 循环条件:在每次循环开始之前进行判断的条件,只有当条件为真时,循环才会执行。
- 循环体:包含在循环中需要重复执行的代码。
- 更新循环条件:在循环体中更新循环条件的值,以确保循环能够终止。
2.2 示例:计算1到10的和
下面是一个使用while循环计算从1到10的和的示例:
int sum = 0;
int i = 1;
while (i <= 10) {
sum += i;
i++;
}
System.out.println("1到10的和为:" + sum);
运行上述代码,将输出以下结果:
1到10的和为:55
在这个示例中,我们使用while循环将变量 i 从1递增到10,并将每个值加到变量 sum 上。在每次循环结束之后,我们使用 i++ 更新循环条件,确保循环能够终止。
2.3 示例:读取用户输入
while循环也常用于读取用户的输入,直到满足特定条件。下面是一个使用while循环读取用户输入的示例:
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
String input;
while (true) {
System.out.print("请输入一个数字:");
input = scanner.nextLine();
if (input.equals("quit")) {
break;
}
int number = Integer.parseInt(input);
System.out.println("您输入的数字是:" + number);
}
System.out.println("程序结束");
在这个示例中,我们使用while循环读取用户的输入,直到用户输入了字符串 "quit" 才结束循环。在每次循环中,我们打印提示信息并使用 scanner.nextLine() 获取用户的输入。然后,我们使用 Integer.parseInt() 将输入转换为整数,并打印出来。如果用户输入了 "quit",我们使用 break 语句退出循环。
3.1 基本语法
在Java中,do-while循环的基本语法如下:
do {
// 循环体
// 更新循环条件
} while (循环条件);
- 循环体:包含在循环中需要重复执行的代码。
- 更新循环条件:在循环体中更新循环条件的值,以决定是否继续执行循环。
- 循环条件:在每次循环结束之后进行判断的条件,只有当条件为真时,循环会继续执行。
请注意,do-while循环保证循环体至少执行一次,因为循环条件是在循环结束后进行判断。
3.2 示例:猜数字游戏
下面是一个使用do-while循环实现猜数字游戏的示例:
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
int secretNumber = 42;
int guess;
do {
System.out.print("猜一个数字:");
guess = scanner.nextInt();
if (guess < secretNumber) {
System.out.println("太小了,请再猜一次!");
} else if (guess > secretNumber) {
System.out.println("太大了,请再猜一次!");
} else {
System.out.println("恭喜,猜对了!");
}
} while (guess != secretNumber);
System.out.println("游戏结束");
在这个示例中,程序生成了一个秘密数字 secretNumber,然后使用do-while循环来实现猜数字的游戏。在每次循环中,程序提示用户猜一个数字,并将用户的猜测与秘密数字进行比较。根据猜测的大小,程序给出相应的提示,直到用户猜对为止。
3.3 示例:循环菜单
do-while循环也可以用于实现循环菜单的功能。下面是一个使用do-while循环实现简单循环菜单的示例:
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("请选择操作:");
System.out.println("1. 添加新记录");
System.out.println("2. 查看记录");
System.out.println("3. 删除记录");
System.out.println("0. 退出");
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("执行添加新记录操作");
break;
case 2:
System.out.println("执行查看记录操作");
break;
case 3:
System.out.println("执行删除记录操作");
break;
case 0:
System.out.println("退出程序");
break;
default:
System.out.println("无效的选择,请重新选择");
break;
}
} while (choice != 0);
System.out.println("程序结束");
在这个示例中,程序通过do-while循环实现了一个简单的循环菜单。在每次循环中,程序打印菜单选项,并根据用户的选择执行相应的操作。当用户选择退出时,循环结束,程序退出。
4.1 基本语法
在Java中,嵌套循环是指在一个循环体内包含另一个循环。嵌套循环的基本语法如下:
for (初始化表达式1; 循环条件1; 更新表达式1) {
// 外层循环体
for (初始化表达式2; 循环条件2; 更新表达式2) {
// 内层循环体
}
}
在嵌套循环中,外层循环体包含了内层循环体。内层循环的执行次数由外层循环的执行次数决定。可以在内层循环中访问外层循环的变量。
4.2 示例:九九乘法表
下面是一个使用嵌套循环打印九九乘法表的示例:
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
int result = i * j;
System.out.print(i + " * " + j + " = " + result + " ");
}
System.out.println();
}
运行上述代码,将输出以下结果:
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
在这个示例中,我们使用两个嵌套的for循环,外层循环控制乘法表的行数,内层循环控制每行的列数。在内层循环中,我们计算乘法的结果并打印出来。
4.3 示例:打印图形
下面是一个使用嵌套循环打印图形的示例,以打印一个直角三角形为例:
int rows = 5;
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
运行上述代码,将输出以下结果:
*
* *
* * *
* * * *
* * * * *
在这个示例中,我们使用两个嵌套的for循环,外层循环控制行数,内层循环控制每行的打印数量。在这个示例中,我们使用两个嵌套的for循环,外层循环控制行数,内层循环控制每行的打印数量。在内层循环中,我们打印一个星号 "*" 来构成图形。
这就是使用Java的嵌套循环的基本语法以及一些示例。你也可以根据需要进行修改和扩展,以实现更复杂的循环逻辑和打印图形。
5.1 break语句
在Java中,break语句用于提前结束循环,即使循环条件仍然为真。break语句的使用示例如下:
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
上述代码中,当i等于5时,break语句被执行,循环提前结束。输出结果如下:
1
2
3
4
break语句还可以在嵌套循环中使用,用于提前结束外层循环。例如:
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
if (i * j > 10) {
break;
}
System.out.println(i * j);
}
}
上述代码中,当乘积超过10时,break语句被执行,内层循环提前结束,但外层循环继续执行。输出结果如下:
1
2
3
4
5
2
4
6
5.2 continue语句
在Java中,continue语句用于跳过当前循环迭代,直接进入下一次循环迭代。continue语句的使用示例如下:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println(i);
}
上述代码中,当i等于3时,continue语句被执行,当前迭代被跳过,直接进入下一次迭代。输出结果如下:
1
2
4
5
continue语句同样可以在嵌套循环中使用,用于跳过当前迭代并进入下一次迭代。例如:
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
if (i == j) {
continue;
}
System.out.println(i + " " + j);
}
}
上述代码中,当i等于j时,continue语句被执行,内层循环的当前迭代被跳过,直接进入下一次迭代。输出结果如下:
1 2
1 3
1 4
1 5
2 1
2 3
2 4
2 5
3 1
3 2
3 4
3 5
4 1
4 2
4 3
4 5
5 1
5 2
5 3
5 4
5.3 示例:找到特定数字
下面是一个使用break语句在循环中找到特定数字并结束循环的示例:
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
if (number == 3) {
System.out.println("找到了特定数字:" + number);
break;
}
}
System.out.println("循环结束");
运行上述代码,将输出以下结果:
找到了特定数字:3
循环结束
在这个示例中,我们使用for-each循环遍历数组numbers,当找到特定数字3时,使用break语句结束循环。在循环结束后,打印出"循环结束"的消息。
这就是使用Java的循环控制语句break和continue的基本语法以及一些示例。
6.1 基本语法
增强for循环用于遍历数组或集合中的元素,它提供了一种简洁的方式来迭代访问元素,而不需要使用传统的循环索引。增强for循环的基本语法如下:
for (元素类型 变量名 : 遍历对象) {
// 循环体
}
在增强for循环中,变量会依次取遍历对象中的每个元素。在循环体内,您可以对每个元素执行所需的操作。增强for循环适用于数组、实现了Iterable接口的集合类以及其他可迭代的对象。
6.2 示例:遍历集合
下面是一个使用增强for循环遍历集合的示例:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
运行上述代码,将输出以下结果:
Apple
Banana
Orange
在这个示例中,我们创建了一个List类型的集合fruits,并添加了几个水果。然后,我们使用增强for循环遍历集合中的每个元素,并打印出来。
需要注意的是,在增强for循环中,变量fruit会依次取fruits集合中的每个元素,这里的元素类型是String。您可以根据需要修改变量类型和集合对象进行遍历。
这就是使用Java的增强for循环的基本语法以及一个示例。增强for循环提供了一种简洁的方式来遍历数组和集合中的元素,使代码更加清晰和易读。