目录
- for
- 语法结构
- 举例
- break
- continue
- return
- 标签
for
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。
- 初始化部分设置循环变量的初值
- 条件判断部分为任意布尔表达式
- 迭代因子控制循环变量的增减
- for循环在执行条件判定后,先执行的循环体部分,再执行步进。
- for循环结构的流程图如图所示:
语法结构
for (初始表达式; 布尔表达式; 迭代因子) {循环体;
}
举例
for
循环是一个非常常用的编程结构,它允许你重复执行一段代码,直到满足某个条件为止。
- 假设我们要打印数字1到5,我们可以使用
for
循环来完成这个任务:
for(int i = 1; i <= 5; i++) {System.out.println(i);
}
现在,我来逐步解释这段代码:
int i = 1;
- 这是初始化部分。我们声明了一个整数变量i
并给它赋初值1。i <= 5;
- 这是循环的条件部分。只要这个条件为真(即i
的值小于或等于5),循环就会继续执行。i++
- 这是循环的更新部分。每次循环结束时,i
的值会增加1。{ System.out.println(i); }
- 这是循环的主体部分。每次循环,这部分的代码都会被执行。在这里,我们只是简单地打印出i
的值。
所以,这段代码会执行5次,每次打印一个数字,从1到5。
break
break
语句在for
循环中的使用可以用来提前结束循环。以下是一个简单的例子,其中使用break
来跳出循环:
假设我们要找出数字列表中的第一个偶数:
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};for(int i = 0; i < numbers.length; i++) {if(numbers[i] % 2 == 0) { // 如果数字是偶数System.out.println("第一个偶数是: " + numbers[i]);break; // 找到第一个偶数后,跳出循环}
}
- 代码定义了一个整数数组numbers
,它包含9个元素,即1到9的整数。
- 然后,代码使用
for
循环遍历这个数组。在每次循环中,它检查当前元素(numbers[i]
)是否是偶数(即该元素除以2的余数为0)。如果是偶数,它会打印出一条消息,指出找到了第一个偶数,然后使用break
语句跳出循环。
continue
public class Testforcontinue {public static void main(String[] args) {for(int i = 1; i <= 10; i++) {if(i % 2 != 0) { // 如果i是奇数continue; // 跳过当前循环,进入下一次循环}System.out.println(i * i); // 打印i的平方}}
}
-
打印1到10之间所有偶数的平方。代码中使用了for循环和continue语句来实现这个功能。
-
for(int i = 1; i <= 10; i++) 这行代码定义了一个从1开始,到10结束的循环,每次循环i的值增加1。
-
在循环体中,if(i % 2 != 0) 这行代码检查当前的i是否为奇数。如果是奇数,就执行continue;语句,这会导致循环直接跳到下一个迭代,不执行后面的代码。
-
如果i是偶数(即i % 2 == 0),那么程序会执行System.out.println(i * i); 这行代码,打印出i的平方。
这样,程序就会打印出1到10之间所有偶数的平方,分别是4、16、36、64、100。
return
public class CalculateCircleArea {public static double calculateCircleArea(double radius) {double area = Math.PI * radius * radius;return area;}public static void main(String[] args) {double radius = 5.0;double area = calculateCircleArea(radius);System.out.println("半径为 " + radius + " 的圆的面积是 " + area);}
}
在这个例子中,
calculateCircleArea
方法接受一个radius参数,然后使用公式πr²
计算圆的面积。然后,使用return语句返回计算得到的面积。在main
方法中,我们调用calculateCircleArea
方法并打印返回的面积。
在上述代码中,return
语句具有以下意义:
- 返回值:
return
用于从方法中返回一个值。在这个例子中,calculateCircleArea
方法计算了一个圆的面积,并通过return
语句返回这个值。 - 终止方法执行:一旦
return
语句被执行,方法中的剩余代码将不再执行。在这个例子中,一旦计算出面积并赋值给area
变量,return
语句就会被执行,从而结束calculateCircleArea
方法的执行。 - 控制流:
return
语句不仅返回一个值,还控制了方法的执行流程。它告诉JVM(Java虚拟机)方法已经完成其任务,并可以返回到调用该方法的代码行。 - 类型匹配:由于
return
语句返回一个double
类型的值,所以方法的返回类型必须是double
或其兼容类型。在这个例子中,calculateCircleArea
方法的返回类型是double
,确保了返回值的正确性。
return
语句在Java中是一个非常重要的关键字,它不仅用于从方法中返回值,还用于控制方法的执行流程和终止方法的执行。
标签
当你在多层循环中,你可能需要从内层循环跳到外层循环,或者从外层循环跳到内层循环。Java提供了一种使用标签的方法来实现这个功能。
标签可以看作是一个标记,它告诉Java编译器在哪里开始或结束一个特定的代码块。这样,当你在代码中遇到一个break
或continue
语句,并且后面跟着一个标签时,Java就会知道要跳转到哪个代码块。
例如,假设你有以下的嵌套循环:
outerLoop:
for (int i = 0; i < 10; i++) {innerLoop:for (int j = 0; j < 10; j++) {if (i == 5 && j == 5) {break outerLoop; // 当满足条件时,跳出outerLoop标签标记的循环}}
}
在这个例子中,当i == 5 && j == 5
时,break outerLoop;
语句会告诉Java跳出outerLoop
标签标记的循环,即跳出外层循环。如果没有标签,break
语句只会跳出内层循环。