1.第三章 选择结构(一)
1.概念
A:嗨,我们晚上去吃个排骨汤吧
B:我现在牙还在疼,如果到晚上的时候不疼了我们就一起去
2. 什么是if选择结构
1.语法:
if () { // 括号里必须是布尔条件表达式
//代码块,只有一条语句的时候大括号可以省略,但是不建议那么做
}
如:之前的问题我们可以套用语法
if(张浩的java成绩>90分){
获得MP4作为奖励
}
流程图:
针对之前的问题,有两种实现方式,一是使用Scanner方式实现,二是声明变量
这里给出声明变量的方式,另一种实现方式自己实现
double score=90.0;
if(score>90){
//判断是否大于90分
System.out.println("老师说不错,奖励一个MP4");
}
System.out.println("程序结束");
2.复杂条件下的if选择结构
运算符 | 表达式 | 说 明 |
---|---|---|
&& | 条件****1 && 条件****2 | 仅仅两个条件同时为真,结果为真 |
|| | 条件****1 || 条件****2 | 只要两个条件有一个为真,结果为真 |
! | ! 条件 | 条件为真时,结果为假****条件为假时,结果为真 |
运算符优先级顺序:
!>算术运算符>比较运算符>&&>||
张浩的Java成绩大于98分,而且音乐成绩大于80分,老师会奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也会奖励他
我们可以用( score1 >98 && score2 > 80 ) || ( score1 == 100 && score2 > 70 )就相当于下面这串代码:
int score1 = 100; // 张浩的Java成绩
int score2 = 72; // 张浩的音乐成绩
if ( ( score1 >98&& score2 > 80 )
|| ( score1 == 100 && score2 > 70 ) ){
System.out.println("老师说:不错,奖励一个MP4!");
}
System.out.println("程序结束");
## 3.
使用if-else选择结构
原本使用两个基本if选择结构
现在可以使用if-else选择结构实现比上面好用多了
i f ( 条 件 ) / / 代 码 块 1 e l s e / / 代 码 块 2 if ( 条件 ) { //代码块1 }else { //代码块2 } if(条件)//代码块1else//代码块2
i f ( 张 浩 J a v a 成 绩 > 98 ) 奖 励 一 个 M P 4 ; e l s e 惩 罚 进 行 编 码 ; if (张浩Java成绩> 98 ) { 奖励一个MP4;}else { 惩罚进行编码;} if(张浩Java成绩>98)奖励一个MP4;else惩罚进行编码;
流程图:
double score=91;
if(score>98){
System.out.println("奖励一个MP4");
}else{
System.out.println("考的有点不好,惩罚");
}
4.使用多重if选择结构
在我们的之前学习过程中,都是判断两种情况,不是怎么样就是怎么样
在实际生活中是可能出现区间选择的,如:分数的评级
成绩>=80 :良好 成绩>=60 :中等成绩<60 :差
类似这样,单个的if无法完成,多个if又比较麻烦,那就可以使用我们即将学习的多重if
i f ( 成 绩 > = 80 ) / / 代 码 块 1 e l s e i f ( 成 绩 > = 60 ) / / 代 码 块 2 e l s e / / 代 码 块 3 if ( 成绩>=80) { //代码块1 } else if (成绩>=60) { //代码块2 } else { //代码块3 } if(成绩>=80)//代码块1elseif(成绩>=60)//代码块2else//代码块3
流程图:
代码:
问题:成绩>=80 :良好 成绩>=60 :中等成绩<60 :差
思考:if里面的条件顺序是否可以随意更换
int score=77;
if(score>=80){
System.out.println("良好");
}else if(score>=60){
System.out.println("中等");
}else{
System.out.println("差");
}
System.out.println("程序结束");
5.为什么使用嵌套if选择结构
宝宝:今晚我们去看电影吧?
小饼干:好啊,不过晚于6点还有其他事就不去了
分析:女是答应去的,但是有前提条件就是不能迟于6点钟
这里就相当于有两个if条件,第一个条件满足才会执行后面的内容
问题:学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组
分析:
如果进入决赛 再看是男还是女,如果是男进入男子组女就进入女子组。这就使用到了嵌套if选择结构
if(条件1) { //外面的条件判断
if(条件2) { //里面的条件判断
//代码块1
} else {
//代码块2
}
} else {
//代码块3
}
流程图:
代码:
int m=8;
String sex="女";
if(m<10){ //外层判断
if(sex.equals("男")){ //内层判断
System.out.println("宝宝");
}else if(sex.equals("女")){
System.out.println("饼干");
}
}else{
System.out.println("淘汰了回家去吧朋友");
}
System.out.println("程序结束");
第四章 选择结构(二)
6. 为什么使用switch选择结构
韩嫣参加计算机编程大赛
如果获得第一名,将参加麻省理工大学组织的1个月夏令营
如果获得第二名,将奖励惠普笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,不给任何奖励
int mingCi=2;
if(mingCi==1){
System.out.println("参加夏令营活动");
}else if(mingCi==2){
System.out.println("奖励笔记本一部");
}else if(mingCi==3){
System.out.println("奖励移动硬盘一个");
}else{
System.out.println("没有奖励");
}
用之前学习的方法亦可以解决问题,但是使用以上的多重if选择结构比较复杂和啰嗦,
现在可以使用switch结构来解决这样的问题,switch解决的是等值判断
语 法 : s w i t c h ( 表 达 式 ) / / b y t e s h o t i n t c h a r 枚 举 j d k 1.7 之 后 有 S t r i n g 类 型 c a s e 常 量 1 : b r e a k ; c a s e 常 量 2 : b r e a k ; c a s e 常 量 3 : b r e a k ; . . . d e f a u l t : b r e a k ; 语法:switch(表达式){ //byte shot int char 枚举 jdk1.7之后有String类型case 常量1: break;case 常量2: break;case 常量3: break;...default:break;} 语法: