您的位置:首页 > 其它

Day3:选择结构

2020-07-09 10:20 344 查看

选择结构


java提供了if控制语句和switch语句来实现选择结构。

一、流程控制结构

顺序结构:顺序结构是指程序从上向下依次执行每条语句的结构,中间没有任何的判断和跳转。
选择结构:选择结构是根据条件判断的结果来选择执行不同的代码。选择结构可细分为单分支结构(基本的if选择结构)、双分支结构(if-else选择结构)和多分枝结构(多重if选择结构)。java提供了if控制语句、switch语句来实现选择结构。
循环结构:循环结构是根据判断条件来重复性地执行某段代码。java提供了while语句、do while语句、for语句来实现循环结构。

二、选择结构

1、if控制语句

if控制语句共有3种不同的形式,细分为单分支结构(基本的if选择结构)、双分支结构(if else选择结构)和多分枝结构(多重if选择结构)。
(1)使用if语句实现单分支处理

if (表达式){
语句
}

if是java关键字。
表达式时布尔类型的表达式,其结果为true或false。

if语句的执行步骤如下:
1)对表达式的结果进行判断。
2)如果表达式的结果为真,则执行该语句。
3)如果表达式的结果为假,则跳过该语句。

//张浩java成绩大于90分,老师奖励给他iphone6s
public class Review1 {
public static void main(String[] args) {
int score=98;
/*   double score=90.5;//小精度值不要太多,正常两位到四位*/
if (score>=90){
System.out.println("老师奖励给他iphone6s");
}
}
}

(2)使用if-else语句实现双分支处理

if(表达式){
语句1
}else{
语句2
}

当表达式为真时,执行语句1;表达式为假时,执行else分支的语句2。
if-else语句的执行步骤如下:
1)对表达式的结果进行判断。
2)如果表达式的结果为true,则执行语句1。
3)如果表达式的结果为false,则执行语句2。

// 张浩java成绩大于90分,老师奖励给,小于90分时受到惩罚。
int score=input.nextInt();
if (score>90) {
System.out.println("老师奖励");
}else{
System.out.println("惩罚蹲马步一天");
}

(3)使用多分支if语句实现多分支处理
当有多个条件判断时,需要使用多分支if语句解决。

if(表达式){
语句1
}else if (表达式2){
语句2
}else{
语句3
}

其中else if的语句可以有多个。
多分支if语句的执行步骤如下:
1)对表达式的结果进行判断。
2) 如果表达式的结果为true,则执行语句1;否则判断表达式2的值。
3)如果表达式的结果为false,则执行语句2;否则执行语句3。

//  张浩java成绩大于90分为优秀,80-90分为良好,60-80分为及格
,60分以下为不及格
int score=95;
/*   double score=90.5;//小精度值不要太多,正常两位到四位*/
if (score>=90){
System.out.println("优秀");
}

else if (score>=80&&score<90){
System.out.println("良好");
}

else if (score>=60&&score<80){
System.out.println("及格");}
else {
System.out.println("不及格");}

2、嵌套if控制语句

在if控制语句中又包含一个或多个if控制语句的称为嵌套if控制语句。嵌套if控制语句可以通过外层语句和内层语句的协作,来增强程序的灵活性。

if(表达式){
语句1
}else {
语句2
}else {
if (表达式3){
语句3
}else{
语句4
}
}

嵌套if控制语句的执行步骤如下:
1)对表达式的结果进行判断。
2) 如果表达式1的结果为true,再对表达式2的结果进行判断。如果表达式2的结果为true,则执行语句1;否则执行语句2。
3)如果表达式1的结果为false,对表达式3的结果进行判断。如果表达式3的结果为true,则执行语句3;否则执行语句4。

// 学校举行运动会,百米赛跑进入10秒内的学生有资格进行决赛,根据性别分别进入男子组和女子组
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入百米赛跑成绩");
double second=sc.nextDouble();

if(second<10){
System.out.println("恭喜晋级");
System.out.println("请输入性别");
String gender=sc.next();
if (gender.equals("男")){
System.out.println("您进入到男子组");
}else
System.out.println("您进入到女子组");}
else {
System.out.println("您没能进入决赛");
}
System.out.println("本次比赛结束");
}

3、switch语句

java还提供了switch语句,用于实现多分支结构。

switch (表达式1){
case  常量1:
语句;
break;
case  常量1:
语句;
break;
......
default:
语句;
break;
}

switch、case、break、default是java关键字。
JDK1.7后,switch后的表达式可以是int,short,byte,char,枚举类型,string类型表达式。
case用于与表达式进行匹配。
break用于终止后续语句的执行。
default是可选的,当其他条件都不匹配时执行default。
switch语句的执行步骤如下:
(1)计算switch后表达式的值。
(2)将计算结果从上至下依次与case后的常量值比较。
(3)如果相等就执行该常量后的代码块,遇到break语句就结束。
(4)如果与任何一个case后的常量都不匹配,就执行default中的语句。

//以出生年份末位两数来作为判断生肖的依据。
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入您出生年份后两位");
byte year=sc.nextByte();
switch (year){
case  95:
System.out.println("猪年");
break;
case 96:
System.out.println("鼠年");
break;
case 97:
System.out.println("牛年");
break;
case 98:
System.out.println("虎年");
break;
default:
System.out.println("大乱斗");

}
}

附:三元表达式

条件?条件的结果为true时整个表达式的值 :条件的结果为false时整个表达时值
boolean?true:false

// 判断一个数是否为偶数
int num=sc.nextInt();
String result=num%2==0?"偶数":"奇数";
System.out.println(result);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: