if选择结构
if选择结构有多种运用方式:单分支if选择结构、双分支if选择结构、多分支if选择结构、if选择结构嵌套。
单分支if选择结构
语法结构:
if(条件){
代码块
}
注意:条件不管多么简单还是多么复杂,都只能为布尔值 。
如果代码块只有一条语句,代码块所在的{}可以省略,但不建议 。
//张浩Java成绩大于90分,老师奖励他iPhone6s ,该怎么做呢?
//声明一个变量javaScore用来存储张浩的Java成绩
double javaScore = 9;
//根据张浩的java成绩判断他能不能拿到奖励
if(javaScore>=90){
System.out.println("奖励一部iPhone6S");
}
System.out.println("继续努力");
双分支if选择结构
语法结构:
if(条件){
代码块1;
}else{
代码块2;
}
执行规律:
如果条件为true,执行代码块1,执行完之后,执行if-else结构后面的代码
如果条件为false,执行else{}里面的代码块2,执行完之后,执行if-else结构后面的代码
//如果张浩Java考试成绩大于等于90分,老师就奖励他一个iPhone6s,否则老师就罚他蹲马步
double javaScore = 9;
if(javaScore>=90){
System.out.println("奖励iPhone6s");
}else{
System.out.println("蹲马步");
}
System.out.println("继续努力");
多重if选择结构
语法结构:
if(条件1){
代码块1
}else if(条件2){
代码块2
}else if(条件3){
代码块3
}else if{
..............
}else{
代码块n
}
执行规律:
(1)先判断条件1,如果条件1为true,执行代码块1,执行完之后结束整个if-else-if结构,执行该结构后面的代码
(2)如果条件1为false,继续往下判断条件2,如果条件2为true, 执行代码块2,执行完之后结束整个if-else-if结构,执行该结构后面的代码
(3)如果条件2为false,继续往下判断条件3,如果条件3为true,执行代码块3,执行完之后结束整个if-else-if结构,执行该结构后面的代码
(4)......
(5)如果所有的条件都为false,执行else里面的代码块n
注意:
(1)条件为布尔值
(2)else if可以有1个、2个、多个
(3)else也可以省略,如果所有的条件不成立,也没有else,那么整个if-else-if结构不执行
(4)多重if选择结构中各个条件的顺序不可以任意排列,要求从上往下由严格到宽松。
/*
* 对学员的考试成绩评测
* 成绩>=80 :良好
* 成绩>=60 :中等
* 成绩<60 :差
*/
double javaScore = 95;
if(javaScore>=80){
System.out.println("良好");
}else if(javaScore>=60){
System.out.println("中等");
}else{
System.out.println("差");
}
System.out.println("继续努力");
嵌套if选择结构
在一个if选择结构中存在另外一个if选择结构
语法结构:
if(条件1){
代码块1
if(条件2){
代码块2
}else{
代码块3
}
}else{
代码块4
}
执行规律:
判断条件1,条件1为true,执行代码块1,进一步判断条件2,条件为true,执行代码块2,条件2为false,执行代码块3,执行完之后,结束整个所有的if结构。
条件1为false,执行下面else里的代码块4。
/*
* 学校举行运动会,百米赛跑跑入10 秒内的学生有资格进决赛,
* 根据性别分别进入男子组和女子组
*/
//创建Scanner类对象
Scanner input = new Scanner(System.in);
System.out.println("请输入你的百米赛跑成绩:");
double runScore =input.nextDouble();
//根据成绩判断能不能进入决赛
if(runScore<10){
System.out.println("恭喜你,进入百米赛跑决赛");
//根据性别判断进入男子组还是女子组
//获取性别
System.out.println("请输入你的性别:");
String sex =input.next();
// boolean result =sex.equals("男");
//根据性别判断决定进入男子组还是女子组
if(sex.equals("男")){
System.out.println("进入男子组");
}else if(sex.equals("女")){
System.out.println("进入女子组");
}else{
System.out.println("对不起,暂时还没有针对你的性别开展比赛");
}
}else{
System.out.println("很遗憾,不能进入百米赛跑决赛");
}
Scanner类的使用:
第一步:导包
import java.util.Scanner;或者import java.util.*;
第二步:创建Scanner类对象
Scanner input = new Scanner(System.in);
第三步:获取数据
int num = input.nextInt(); 获取int类型数据
double num2 = input.nextDouble(); 获取double类型数据
String str= input.next(); 获取String类型数据
switch选择结构
switch(表达式){
case 常量值1:
代码语句;
break;
case 常量值2:
代码语句;
break;
case 常量值3:
代码语句;
break;
.........
default:
代码语句;
break; }
执行规律:
根据表达式的值,来与case后面的常量值进行匹配
匹配上哪个常量值,就执行该case里面的代码语句,代码语句执行完,执行break,退出整个Switch选择结构,执行Switch选择结构后面的代码
如果表达式的值与所有的case常量值不匹配,则执行default里面的代码语句,执行完执行break语句,退出整个Switch选择结构
注意事项:
(1)表达式的值可以是int、short、byte、char、枚举类型、String(JDK7及以后版本可以使用)
(2)case常量值不能相同
(3)default语句可以在任意位置,一般来说写在最后,也可以省略不写
(4)break的作用是结束整个Switch选择结构,如果不写,会造成“case穿透”现象,此现象可以合理使用
/*
* 韩嫣参加计算机编程大赛
* 如果第一 名,参加麻省理工大学组织的1个月夏令营
* 如果第二名,奖励惠普笔记本电脑一部
* 如果第三名,奖励移动硬盘一个
* 否则,不给任何奖励
*/
int mingCi = 1;
switch (mingCi) {
case 1:
System.out.println("参加麻省理工大学组织的1个月夏令营");
break;
case 2:
System.out.println("奖励惠普笔记本电脑一部");
break;
case 3:
System.out.println("奖励移动硬盘一个");
break;
default:
System.out.println("不给任何奖励");
break;
}
System.out.println("继续努力");