Java基础 – 流程控制语句
IF
if (条件表达式) {
语句块;
}
代码演示
public static void main(String[] args) {
System.out.println("请输入一个数字:");
Scanner input = new Scanner(System.in);
int num = input.nextInt(); // 接收键盘输入数据
// 判断用户输入的数据是否大于100
if (num > 100) {
System.out.println("输入的数字大于100");
}
// 判断用户输入的数据是否等于100
if (num == 100) {
System.out.println("输入的数字等于100");
}
// 判断用户输入的数据是否小于100
if (num < 100) {
System.out.println("输入的数字小于100");
}
}
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
if (num1 > num2) {
System.out.println("num1大于num2");
}
if (num1 == num2) {
System.out.println("num2等于num2");
}
if (num1 < num2) {
System.out.println("num1小于num2");
}
}
public static void main(String[] args) {
String username = "admin"; // 用户名
String userpass = "123456"; // 密码
String code = "0000"; // 验证码
if (username != "admin" && userpass != "123456" && code != "0000") {
System.out.println("登录失败!");
System.out.println("异常!");
}
}
if-else 结构
格式
if (表达式) {
语句块1;
} else {
语句块2;
}
执行流程
代码演示
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
// 如果num1等于num2
if (num1 == num2) {
System.out.println("num1等于num2");
}
// 如果num1大于num2
if (num1 > num2) {
System.out.println("num1大于num2");
} else {
// 否则就是num1小于num2
System.out.println("num1小于num2");
}
}
多条件 if-else-if 语句
格式
if(表达式1) {
语句块1;
} else if(表达式2) {
语句块2;
...
} else if(表达式n) {
语句块n;
} else {
语句块n+1;
}
实例代码
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
if (num1 == num2) { // 如果num1等于num2
System.out.println("num1等于num2");
} else if (num1 > num2) { // 如果num1大于num2
System.out.println("num1大于num2");
} else { // 否则就是小于
System.out.println("num1小于num2");
}
}
public static void main(String[] args) {
System.out.println("请输入考试成绩:");
Scanner input = new Scanner(System.in);
int score = input.nextInt(); // 接收键盘输入数据
if (score >= 90) { // 考试成绩>=90
System.out.println("优秀");
} else if (score >= 80) { // 90>考试成绩>=80
System.out.println("良好");
} else if (score >= 60) { // 80>考试成绩>=60
System.out.println("中等");
} else { // 考试成绩<60
System.out.println("差");
}
}
嵌套 if 的使用
格式
if(表达式1) {
if(表达式2) {
语句块1;
} else {
语句块2;
}
} else {
if(表达式3) {
语句块3;
} else if(表达式4) {
语句块4;
} else {
if(表达式n) {
语句块n;
} else {
语句块n+1;
}
}
}
实例代码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入出行的月份:");
int month = sc.nextInt();
System.out.println("选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱");
int kind = sc.nextInt();
double result = 60000; // 原始价格
// 旺季的票价计算
if (month <= 11 && month >= 4) {
if (kind == 1) { // 旺季头等舱
result = result * 0.9;
} else if (kind == 2) { // 旺季经济舱
result = result * 0.8;
} else {
System.out.println("选择种类有误,请重新输入!");
}
}
// 淡季的票价计算
else if ((month >= 1 && month <= 3) || month == 12) {
if (kind == 1) { // 淡季头等舱
result = result * 0.5;
} else if (kind == 2) { // 淡季经济舱
result = result * 0.4;
} else {
System.out.println("选择种类有误,请重新输入!");
}
} else {
System.out.println("日期选择有误,请重新输入!");
}
System.out.println("您选择的机票价格为:" + result);
}
}
switch
格式
switch(表达式) {
case 值1:
语句块1;
break;
case 值2:
语句块2;
break;
…
case 值n:
语句块n;
break;
default:
语句块n+1;
break;
}
实例代码
public static void main(String[] args) {
System.out.println("请输入座位号码:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
switch (num) {
case 8:
System.out.println("恭喜你,获得了三等奖!");
break;
case 88:
System.out.println("恭喜你,获得了二等奖!");
break;
case 888:
System.out.println("恭喜你,获得了一等奖!");
break;
default:
System.out.println("谢谢参与!");
break;
}
}
区别
switch实现计算星座功能
public static void main(String[] args) {
System.out.println("请输入您的出生年月(如 0123 表示 1 月 23 日):");
Scanner sc = new Scanner(System.in);
int monthday = sc.nextInt();
int month = monthday/100;
int day = monthday%100;
String xingzuo = "";
switch (month) {
case 1:
xingzuo = day<21?"摩羯座":"水瓶座";
break;
case 2:
xingzuo = day<20? "水瓶座":"双鱼座";
break;
case 3:
xingzuo = day<21?"双鱼座":"白羊座";
break;
case 4:
xingzuo = day<21?"白羊座":"金牛座";
break;
case 5:
xingzuo = day<22?"金牛座":"双子座";
break;
case 6:
xingzuo = day<22?"双子座":"巨蟹座";
break;
case 7:
xingzuo = day<23?"巨蟹座":"狮子座";
break;
case 8:
xingzuo = day<24?"狮子座":"处女座";
break;
case 9:
xingzuo = day<24?"处女座":"天秤座";
break;
case 10:
xingzuo = day<24?"天秤座":"天蝎座";
break;
case 11:
xingzuo = day<23?"天蝎座":"射手座";
break;
case 12:
xingzuo = day<22?"射手座":"摩羯座";
break;
}
System.out.println("您的星座是:" +xingzuo);
}
if-else 实现计算星座功能
public static void main(String[] args) {
System.out.println("请输入您的出生年月(如 0123 表示 1 月 23 日):");
Scanner sc = new Scanner(System.in);
int monthday = sc.nextInt();
int month = monthday / 100;
int day = monthday % 100;
String xingzuo = "";
if (month == 1) {
if (day < 21) {
xingzuo = "摩羯座";
} else {
xingzuo = "水瓶座";
}
} else if (month == 2) {
if (day < 20) {
xingzuo = "水瓶座";
} else {
xingzuo = "双鱼座";
}
} else if (month == 3) {
if (day < 21) {
xingzuo = "双鱼座";
} else {
xingzuo = "白羊座";
}
} else if (month == 4) {
if (day < 21) {
xingzuo = "白羊座";
} else {
xingzuo = "金牛座";
}
} else if (month == 5) {
if (day < 22) {
xingzuo = "金牛座";
} else {
xingzuo = "双子座";
}
} else if (month == 6) {
if (day < 22) {
xingzuo = "双子座";
} else {
xingzuo = "巨蟹座";
}
} else if (month == 7) {
if (day < 23) {
xingzuo = "巨蟹座";
} else {
xingzuo = "狮子座";
}
} else if (month == 8) {
if (day < 24) {
xingzuo = "狮子座";
} else {
xingzuo = "处女座";
}
} else if (month == 9) {
if (day < 24) {
xingzuo = "处女座";
} else {
xingzuo = "天秤座";
}
} else if (month == 10) {
if (day < 24) {
xingzuo = "天秤座";
} else {
xingzuo = "天蝎座";
}
} else if (month == 11) {
if (day < 23) {
xingzuo = "天蝎座";
} else {
xingzuo = "射手座";
}
} else if (month == 12) {
if (day < 22) {
xingzuo = "射手座";
} else {
xingzuo = "摩羯座";
}
}
System.out.println("您的星座是:" + xingzuo);
}
综合上诉,效率方面Switch显得要快一些,但是从实用性来说 如果否则,相对来说更加语义通用