网站首页 > 技术文章 正文
流程控制——选择控制语句
如果....那么.....另外情况.....
掌握if条件语句
掌握if…else条件语句
掌握嵌套if...else条件语句
掌握多重if条件语句
掌握switch分支语句
选择控制语句
什么是选择控制语句
选择控制语句也称为“分支语句”,有特定的语法结构,代码执行要根据具体的逻辑运算进行判断。因为逻辑运算的结果是布尔值,即true或false,所以逻辑运算的结果值为true时,则执行对应的代码,否则不执行。选择控制语句的流程如图所示。
Java提供了两种选择控制语句,分别是if语句和switch分支语句
if语句分为if条件语句,if...else 条件语句,多重if条件语句3种形式。
if条件语句
if条件语句是根据条件判断再做处理的一种语法结构
if(条件){
代码块;
}
public static void main(String[] args) {
int a = 100;
int b = 20;
if (a < b) {
System.out.println(a + "小于" + b);
}
System.out.println("if 结束");
}
if...else 条件语句
if...else条件语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理。
public static void main(String[] args) {
//定义一个整型的变量a,并赋值为100
int a = 100;
int b = 200;
//如果变量a小于变量b,则输出打印a小于b
if (a < b) {
System.out.println(a + "小于" + b);
} //否则,则输出打印a大于b
else {
System.out.println(a + "大于" + b);
}
//if语句结束,输出"if 结束"
System.out.println("if 结束");
}
例如,判断一个正整数的奇偶性,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。
public static void main(String[] args) {
//判断一个正整数的奇偶性,
// 如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。
System.out.print("请输入一个整数:");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
if (num%2==0){
System.out.println(num+"是偶数");
} else {
System.out.println(num+"是奇数");
}
}
嵌套if...else 条件语句
嵌套if条件语句就是if条件语句里面再嵌入if语句。
if(条件1){
if(条件2){
代码块1
}else{
代码块2
}
}else{
代码块3
}
public static void main(String[] args) {
//判断一个正整数的奇偶性,
// 如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。
System.out.print("请输入一个整数:");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
if (num%2==0){
if (num==0){
System.out.println(num+"是非偶数非奇数");
}else {
System.out.println(num+"是偶数");
}
} else {
System.out.println(num+"是奇数");
}
}
多重if条件语句
多重if条件语句用于对多个条件进行判断,进行多种不同的处理
if(条件1){
代码块1
}else if(条件2){
代码块2
}else{
代码块3
}
对学生的考试成绩进行等级的划分,如果分数大于90分,等级为优秀,否则,如果分数大于70分,等级为良好,否则,如果分数大于60分,等级为合格,否则,等级为不及格?
public static void main(String[] args) {
//对学生的考试成绩进行等级的划分,
// 如果分数大于90分,等级为优秀,
// 否则,如果分数大于70分,等级为良好,
// 否则,如果分数大于60分,等级为合格,
// 否则,等级为不及格?
System.out.print("请输入一个分数:");
Scanner scan = new Scanner(System.in);
int score = scan.nextInt();
if (score > 90) {
System.out.println("优秀");
} else if (score > 70) {
System.out.println("良好");
} else if (score > 60) {
System.out.println("合格");
} else {
System.out.println("不合格");
}
}
案例
年龄,小于12-儿童,大于12-少年,大于18-青少年,大于30-青年,大于45-中年人,大于60的-老年人
使用多重if条件语句的时候,要把范围小的情况放在范围大的前面
public static void main(String[] args) {
//年龄,小于12-儿童,大于等于12-少年,
// 大于等于18-青少年,大于等于30-青年,
// 大于等于45-中年人,大于等于60的-老年人
System.out.print("请输入一个年龄:");
Scanner scan = new Scanner(System.in);
int age = scan.nextInt();
if (age >= 60) {
System.out.println("老年");
} else if (age >= 45) {
System.out.println("中年");
} else if (age >= 30) {
System.out.println("青年");
} else if (age >= 18) {
System.out.println("青少年");
} else if (age >= 12) {
System.out.println("少年");
} else if (age > 0 && age < 12) {
System.out.println("儿童");
}else {
System.out.println("数据有问题");
}
}
switch分支语句
要实现更多的选择逻辑,就需要更深层次的if嵌套条件语句。但是采用这种方式不仅繁琐,而且程序的可读性也不高。针对这样的情况,Java语言提供了另一种可供多路选择的switch分支语句。
switch (表达式){
case 值1:
代码块1;
[break;]
……
case 值n:
代码块n;
[break;]
default:
代码块n+1;
}
switch语句中需要注意以下5点。
(1)判断表达式的类型只能是byte、short、char、int、String和enmu(枚举)这6种数据类型
(2)case语句可以为任意多个,并且case后的选择必须是直接值,而不能是变量,且不能有相同的选择值(多个case语句后面的值均不能相同)。
(3)代码块部分的语句可以分一条或多条。
(4)break关键字的作用是结束switch分支语句,break语句为可选。
(5)default语句并不是一定写在最后,可以放在switch分支语句块中的任意位置,不在最后是需要添加break语句。
案例
根据数字来输出中文格式的星期?
public static void main(String[] args) {
// 根据数字来输出中文格式的星期?
System.out.print("请输入一个星期数字:");
Scanner scan = new Scanner(System.in);
int day = scan.nextInt();
if (day == 1) {
System.out.println("一");
} else if (day == 2) {
System.out.println("二");
} else if (day == 3) {
System.out.println("三");
} else if (day == 4) {
System.out.println("四");
} else if (day == 5) {
System.out.println("五");
} else if (day == 6) {
System.out.println("六");
} else if (day == 7) {
System.out.println("七");
} else {
System.out.println("数据异常");
}
}
public static void main(String[] args) {
// 根据数字来输出中文格式的星期?
System.out.print("请输入一个星期数字:");
Scanner scan = new Scanner(System.in);
int day = scan.nextInt();
switch (day){
case 1:
System.out.println("一");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
case 4:
System.out.println("4");
break;
case 5:
System.out.println("5");
break;
case 6:
System.out.println("6");
break;
case 7:
System.out.println("7");
break;
default:
System.out.println("数据异常");
}
}
switch分支语句与多重if条件语句的区别
(1)相同点:都可以实现多分支结构。
(2)不同点:①switch分支语句只能处理等值的条件判断,且条件是整型变量、字符变量、enum、String的等值判断;②多重if条件语句用于对多个条件进行判断,特别适合某个区间值的条件判断。
案例
商场购物可以打折,具体办法如下:普通顾客购物打9折;会员购物满100元打8折,满200元打7.5折。使用嵌套if进行实现。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入是否是会员:是(y)/否(其他字符)");
String identity = input.next();
System.out.println("请输入购物金额:");
double money = input.nextDouble();
if (identity.equals("y")) { //会员
if (money > 200) { //金额大于200
money = money * 0.75;
} else { //金额小于200
money = money * 0.8;
}
} else { //非会员
if (money > 100) {
money = money * 0.9;
}
}
System.out.println("实际支付:" + money);
}
小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明 的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
public static void main(String[] args) {
//小明的考试成绩未知,可以使用键盘录入的方式获取值
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个分数:");
int score = sc.nextInt();
//由于奖励种类较多,属于多种判断,采用if...else...if格式实现
//为每种判断设置对应的条件
//为每种判断设置对应的奖励
//数据测试:正确数据,边界数据,错误数据
if (score > 100 || score < 0) {
System.out.println("你输入的分数有误");
} else if (score >= 95 && score <= 100) {
System.out.println("山地自行车一辆");
} else if (score >= 90 && score <= 94) {
System.out.println("游乐场玩一次");
} else if (score >= 80 && score <= 89) {
System.out.println("变形金刚玩具一个");
} else {
System.out.println("胖揍一顿");
}
}
一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季 节,并输出。
public static void main(String[] args) {
//键盘录入月份数据,使用变量接收
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份:");
int month = sc.nextInt();
//case穿透
switch (month) {
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
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;
default:
System.out.println("你输入的月份有误");
}
}
猜你喜欢
- 2024-10-02 数学选择4解法,省时又提分,备考生必备
- 2024-10-02 Scratch之变量 scratch变量怎么讲
- 2024-10-02 能够同时利用分类变量和连续变量对个案进行聚类的方法—两步聚类法
- 2024-10-02 西门子PLC | 博途FB入门篇,看这个就够了
- 2024-10-02 一文搞定神秘热图的读与做,超详细!
- 2024-10-02 一文读懂业务数据的分析思路 业务数据分析报告怎么做
- 2024-10-02 【VBA基础】变量的类型和申明变量类型的重要性
- 2024-10-02 Python Selenium 变量与选择器选择元素
- 2024-10-02 回归分析 之 一元线性回归 一元线性回归的主要步骤,和每个步骤的关键算法
- 2024-10-02 特征选择(Feature Selection)方法汇总
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)