Java 流程控制
在Java 中,我们可以使用 if-else 语句、switch-case 语句和循环语句来控制程序的流程。Java 的这些流程控制语句和 C/C++ 的语句很相似。我们通过一些例子来学习 Java 的流程控制。
if-else 语句
在Java 中,我们可以使用 if-else 语句来判断一个条件是否成立。例如,我们可以判断一个数是否大于 0,如果是,则输出 “大于 0”,否则输出 “小于等于 0”。
package com.learn.processcontrol;
public class IfElse {
public static void main(String[] args)
{
int a = 10;
int b = 20;
// if-else
if(a > b)
{
System.out.println("a is greater than b");
}
else
{
System.out.println("b is greater than a");
}
// if 语句
if(a > b)
{
System.out.println("a is greater than b");
}
// if-else if-else
int c = 30;
if(a > b)
{
System.out.println("a is greater than b");
}
else if(b > c)
{
System.out.println("b is greater than c");
}
else
{
System.out.println("c is greater than a and b");
}
}
}
在上面的例子中,我们首先定义了三个变量 a、b 和 c。然后,我们使用 if-else 语句来判断 a 是否大于 b。如果 a 大于 b,则输出 “a is greater than b”,否则输出 “b is greater than a”。
switch-case 语句
在Java 中,我们可以使用 switch-case 语句来判断一个变量的值,并根据不同的值执行不同的代码。例如:
package com.learn.processcontrol;
public class SwitchCase {
public static void main(String[] args)
{
int day = 4;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Invalid day");
}
}
}
在 Switch-Case 语句中,我们需要注意以下几点:
- Switch-Case 语句中,case 后面的值必须是常量或者 final 变量。
- Switch-Case 语句中的变量类型必须是 byte、short、int、char 或枚举类型。
- Switch-Case 语句中的变量不能是 float、double 或对象。
循环语句
在Java 中,我们可以使用循环语句来重复执行一段代码。例如,我们可以使用 for 循环来遍历数组中的元素,或者使用 while 循环来判断一个条件是否成立,如果成立,则重复执行一段代码。
for 循环
for 循环可以用来遍历数组中的元素,例如:
package com.learn.processcontrol;
public class For {
public static void main(String[] args)
{
int i;
for (i = 0; i < 5; i++)
{
System.out.println("This is line " + i);
}
// for (;;), 其中的三个值都是可选的,例如:
for (i = 0; i < 5;)
{
System.out.println("This is line " + i);
i++;
}
int j = 0;
for (; j < 5; j++)
{
System.out.println("This is line " + j);
}
for (;;) // 无限循环
{
System.out.println("This is an infinite loop");
}
}
}
for 循环是我们最常用的循环语句之一。因为它的三个参数都是可选的,并且可以省略,带给我们极大的灵活性。
while 循环
while 循环可以用来判断一个条件是否成立,如果成立,则重复执行一段代码。例如:
package com.learn.processcontrol;
public class While {
public static void main(String[] args)
{
int i = 0;
while (i < 5) {
System.out.println("i = " + i);
i++;
}
main1();
}
public static void main1()
{
int i = 0;
while (true) {
System.out.println("i = " + i);
i++;
}
}
}
while 循环是我们最常用的循环语句之一。它需要一个条件来判断是否继续执行,如果条件成立,则重复执行一段代码。通常在死循环中使用 while 循环。
do-while 循环
do-while 循环与 while 循环类似,但是,do-while 循环至少会执行一次循环体。它会先执行一次循环体,然后再判断条件。例如:
package com.learn.processcontrol;
public class DoWhile {
public static void main(String[] args) {
// 循环体始终至少执行一次
int i = 0;
do {
System.out.println(i);
i++;
} while (i < -1); // i 初始值为 0,由于循环体至少执行一次,输出 0
// 执行 5 次循环体
int j = 0;
do {
System.out.println("This is line " + j);
j++;
} while (j < 5);
System.out.println("j = " + j); // j = 5
}
}
break 和 continue
break 和 continue 是 Java 中的控制语句,它们可以用来跳出循环或跳过当前循环的迭代。
package com.learn.processcontrol;
public class BreakContinue {
public static void main(String[] args) {
// break 语句
for (int i = 0; i < 10; i++) {
if (i == 5) { // 输出到5就退出循环
break;
}
System.out.println(i);
}
System.out.println("循环结束");
// continue 语句
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) { // 输出到偶数就提前中止本次循环,进行下一次循环,跳过偶数,只输出奇数
continue;
}
System.out.println(i);
}
System.out.println("循环结束");
// break 和 continue 组合
int i = 0;
while (true)
{
i++;
if (i % 2 == 0) { // 输出到偶数就提前中止本次循环,进行下一次循环,跳过偶数,只输出奇数
continue;
}
if (i == 7) { // 输出到7就退出循环
break;
}
System.out.println(i);
}
System.out.println("循环结束");
}
}
break 和 continue 的区别与联系:
- break 语句可以用来跳出循环,而 continue 语句可以用来跳过当前循环的迭代。
- break 语句可以用来跳出 switch 语句,而 continue 语句不能。