控制结构
在Java中,控制语句用于控制程序的执行流程,主要包括条件语句(if, else, switch)和循环语句(for, while, do-while)。这些语句允许程序根据不同的条件执行不同的代码。
分支控制语句
分支控制语句允许程序在满足特定条件时执行不同的代码路径。
- if语句:最基本的条件语句,用于在条件为真时执行代码块。
if (条件) {
// 当条件为真是执行的代码
}
简单例子:使用if语句进行判断。
public class Test {
public static void main(String[] args){
int i = 18;
if (i >= 18) {
System.out.println("恭喜你!已成年!");
}
}
}
Test.main(null)
- if-else 语句:在条件为假时提供另一种执行路径。
if (条件) {
// 当条件为真时执行的代码
}
else {
//当条件为假时执行的代码
}
也可以是多个if-else语句连着用
public class Test{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int i = scanner.nextInt();
if (i >= 18) {
System.out.println("你是成年人!");
}
else {
System.out.println("你是未成年人!");
}
}
}
- **switch语句:**用于基于变量的值选择执行不同代码的条件选择。
switch (变量) {
case 值1:
// 当变量值等于1时执行的代码块
break;
case 值2:
// 当变量值等于2时执行的代码块
break;
// 更多case……
default:
// 如果没有匹配的case,执行这里的代码
break;
}
使用switch来实现给学生分等级:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的成绩:");
int i = scanner.nextInt();
char g;
if (i > 90) {
g = 'A';
} else if (i > 80) {
g = 'B';
} else if (i > 70) {
g = 'C';
} else if (i > 60) {
g = 'D';
} else {
g = 'E';
}
switch (g) {
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("中等");
break;
case 'D':
System.out.println("及格");
break;
case 'E':
System.out.println("不及格");
break;
default:
System.out.println("无效成绩");
break;
}
}
}
上面的代码导入了java.util.Scanner
库。这是Java语言中用于读取用户输入的库。通过导入这个库,我们可以创建一个Scanner
对象,然后使用它来读取用户输入的成绩值。
- 循环控制语句
循环控制语句允许程序重复执行一段代码,直到满足某个条件。
- for循环:在已知循环次数的情况下使用。
for (初始化表达式; 循环条件; 更新表达式) {
// 循环体
}
- while循环:在循环次数未知,但有明确退出条件时使用。
while (循环条件) {
// 循环体
}
- do- while循环:至少执行一次循环体,然后根据条件决定是否继续循环。
do {
//循环体
}
while (循环条件) ;
下面是各种循环循环的例子:
public class Test{
public static void main(String[] args){
int i = 0;
System.out.println("这是for循环");
for (i=0; i <= 10; i++) {
System.out.print(i);
}
System.out.println("这是while循环");
while (i <= 20){
System.out.print(i);
i += 1;
}
System.out.println("这是do while 循环");
do{
System.out.print(i);
i += 1;
}
while(i <= 25);
}
}
-
循环控制语句的特殊用法
- break语句: 用于立即退出循环(for, while, do-while, switch)。
// 在循环中使用break if (需要退出循环){ break; }
- continue语句: 用于跳过当前循环的剩余部分,直接开始下一个循环。
// 在循环中使用continue if (需要跳过本次循环) { continue; }
-
label(标签): 用于标识循环,与break和continue结合使用,可以跳出多层或跳过特定循环。
-
outerLoop: for (int i = 0; i < 10; i++){ innerLoop: for(int j = 0; j < 10: j++) // 使用标签 if (需要退出外层循环) { break outerLoop; // 使用标签 if(需要跳出内层循环){ continue innerLoop } } }
例子:判断闰年
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
if (isLeapYear(year)) {
System.out.println(year + "年是闰年。");
} else {
System.out.println(year + "年不是闰年。");
}
}
public static boolean isLeapYear(int year) {
// 判断闰年的逻辑
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return true;
} else {
return false;
}
}
}