java控制语句详解
条件控制语句
1.if 语句
基本形式:
if (条件表达式) {
// 当条件表达式的值为true时执行的代码块
}
例如:
int num = 10;
if (num > 5) {
System.out.println("num大于5");
}
if-else 语句:在if的基础上增加了else分支,当if中的条件表达式为false时,执行else中的代码块。
if (条件表达式) {
// 条件为true时执行的代码块
} else {
// 条件为false时执行的代码块
}
示例:
int score = 60;
if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
if-else if-else 语句:可以处理多个分支条件判断。
if (条件表达式1) {
// 条件表达式1为true时执行的代码块
} else if (条件表达式2) {
// 条件表达式2为true时执行的代码块
} else {
// 前面所有条件都为false时执行的代码块
}
例如,根据成绩等级输出对应评价:
int grade = 85;
if (grade >= 90) {
System.out.println("优秀");
} else if (grade >= 80) {
System.out.println("良好");
} else if (grade >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
注意点:字符串的比较不能使用“==”,必须手动调用equals方法来进行比较
示例
import java.util.Scanner;
public class kuozhuan {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("欢迎用户使用本系统,请先进行用户登录");
System.out.print("请输入用户名:");
String username=s.next();
System.out.print("请输入密码:");
String password=s.next();
if(username.equals("admin")&&password.equals("abc123"))
{
System.out.println("登录成功");
}else{
System.out.println("用户名不存在或者密码错误,登录失败!");
}
}
}
2.switch 语句
用于多分支选择,根据表达式的值来匹配不同的case
分支并执行相应代码
1.表达式最后执行完是一个值,这个值要求类型是:int,枚举类型,字符串类型。
当然,也可以直接把byte,short,char放进去,会进行自动类型转换
2.default语句不是必须的。建议写上,这样程序更加健壮。
3.break;语句只要执行,switch语句就会结束。
public class switchTest {
public static void main(String[] args) {
long x=100L;
switch (x){ //编译报错,long类型是不允许的
}
//修改
long x=100L;
switch ((int)x){
}
byte b=1;//小容量转大容量可以自动转
switch (b){ }
short s=1;
switch (s){ }
char c='a';
switch (c){ }//小容量转大容量可以自动转,char小于int,会转成’a‘对应的二进制编码
}
例如,根据星期数字输出对应的星期几的字符串:
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入的数字不合法");
}
需要注意的是,在每个case分支后如果没有break语句,会继续执行下一个case分支的代码,这叫 “case 穿透”,要根据实际需求合理使用或避免。
例如2:编写一个程序,根据输入的月份,输出该月份所属的季节。
import java.util.Scanner;
public class switchTest1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入月份:");
int month=scanner.nextInt();
switch (month){
case 3:
System.out.println("春季");
break;
case 4:
System.out.println("春季");
break;
case 5:
System.out.println("春季");
break;
case 6:
System.out.println("夏季");
break;
case 7:
System.out.println("夏季");
break;
case 8:
System.out.println("夏季");
break;
case 9:
System.out.println("秋季");
break;
case 10:
System.out.println("秋季");
break;
case 11:
System.out.println("秋季");
break;
case 12:
System.out.println("冬季");
break;
case 1:
System.out.println("冬季");
break;
case 2:
System.out.println("冬季");
break;
}
}
}
注意:case可以合并
import java.util.Scanner;
public class switchTest1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入月份:");
int month=scanner.nextInt();
switch (month){
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
}
}
}
循环控制语句
1.while 循环
只要条件表达式的值为true,就会重复执行循环体中的代码。
while (条件表达式) {
// 循环体,条件表达式为true时执行的代码块
}
例如,计算 1 到 100 的整数之和:
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i++;
}
System.out.println("1到100的和为:" + sum);
2.do-while 循环
它先执行一次循环体,然后再判断条件表达式的值是否为true,如果为true,则继续循环,否则结束循环。
do {
// 循环体
} while (条件表达式);
例如,同样计算 1 到 100 的整数之和:
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while (i <= 100);
System.out.println("1到100的和为:" + sum);
与while
循环不同的是,do-while
循环至少会执行一次循环体。
3. for 循环
常用于已知循环次数的情况,语法结构更加紧凑。
for (初始化表达式; 条件表达式; 迭代表达式) {
// 循环体
}
例如,输出 1 到 10 的数字:
for (int j = 1; j <= 10; j++) {
System.out.println(j);
}
初始化表达式用于初始化循环变量,条件表达式决定循环是否继续执行,迭代表达式用于在每次循环结束后更新循环变量。
跳转控制语句
1.break 语句
在switch语句中,用于终止switch结构,使程序跳出switch块,执行后面的代码。 在循环语句(while、do-while、for)中,用于强制跳出当前所在的循环,结束循环的执行。例如:
for (int k = 1; k <= 10; k++) {
if (k == 5) {
break;
}
System.out.println(k);
}
上述代码在k等于 5 时就会跳出for循环,只会输出 1、2、3、4。
2. continue 语句
用于在循环语句中,跳过本次循环体中剩余的语句,直接开始下一次循环的判断和执行。例如:
for (int m = 1; m <= 10; m++) {
if (m % 2 == 0) {
continue;
}
System.out.println(m);
}
该代码会输出 1 到 10 中的奇数,当m
为偶数时,执行continue
语句,直接进入下一次循环的条件判断,跳过了输出偶数的操作。
这些控制语句相互配合,可以实现各种复杂的程序逻辑控制,满足不同业务场景下的编程需求。