Java基础_分支选择结构详解_5

分支选择结构

if单分支

		if(布尔表达式){
		    语句块
		}

结构:
if(条件表达式,这个表达式的结果是布尔值:要么是false,要么是true){
//{}中的代码是否执行,取决于()中表达式的返回结果
}

if多分支

		if(布尔表达式1) {
		        语句块1;
		} else if(布尔表达式2) {
		        语句块2;
		}……
		else if(布尔表达式n){
		        语句块n;
		} else {
		        语句块n+1;
		}

if双分支

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

双分支可以使用条件运算符代替!a?b:c

随机数

在java中依靠一个类:Math类帮助我们生成,这个类中有一个方法专门用来生成随机数。
Math.random() -------> [0.0,1.0)
Math.random()*6 ----->[0.0,6.0)
(int)(Math.random()*6) ----->[0,5]
(int)(Math.random()*6) +1 ----->[1,6]

例如:[32,98] - [0,66]+32 - (int)(Math.random()*67) + 32

分支结构练习1

会员购物时,不同积分享受的折扣不同,规则如下:
在这里插入图片描述
本题主要考的是 程序的优化:

import java.util.Scanner;
public class TestIf04{
        public static void main(String[] args){
                //1.给出积分:
                Scanner sc = new Scanner(System.in);
                System.out.print("请输入会员积分:");
                
                //先判断键盘录入的数据是不是int类型的
                if(sc.hasNextInt()==true){//是int类型数据:
                        //将这个int类型的数据接收:
                        int score = sc.nextInt();
                        //判断这个积分是否是正数:
                        if(score>=0){
                                String discount = "";
                                //2.根据积分判断折扣:
                                if(score>=8000){
                                        discount = "0.6";
                                }else if(score>=4000){
                                        discount = "0.7";
                                }else if(score>=2000){
                                        discount = "0.8"; 
                                }else{
                                        discount = "0.9"; 
                                }
                                System.out.println("该会员享受的折扣为:"+discount);
                                
                        }else{//score<0
                                System.out.println("对不起,你录入的积分是负数!不符合需求!");
                        }	
                }else{//不是int类型的数据
                        System.out.println("你录入的积分不是整数!");
                }
        
        }
}

分支结构练习2

小朋友搬桌子:
年龄大于7岁,可以搬桌子;
如果年龄大于5岁,性别是男,可以搬桌子;
否则不可以搬动桌子,提示:你还太小了

本题主要考的是:逻辑

方式1:性别用0或者1接收:

import java.util.Scanner;
public class TestIf05{
        public static void main(String[] args){
                //1.录入小朋友的年龄:
                Scanner sc = new Scanner(System.in);
                System.out.println("请录入小朋友的年龄:");
                int age = sc.nextInt();
                
                //2.根据年龄判断:
                if(age>=7){
                        System.out.println("yes");
                }else if(age>=5){
                        //录入小朋友的性别;
                        System.out.println("请录入小朋友的性别:男:1  女 :0");
                        int sex = sc.nextInt();
                        if(sex==1){//男生
                                System.out.println("yes");
                        }else{//女孩
                                System.out.println("no");
                        }
                }else{//age<5
                        System.out.println("no");
                }
        }
}

方式2:性别用男或者女接收:

import java.util.Scanner;
public class TestIf06{
        public static void main(String[] args){
                //1.录入小朋友的年龄:
                Scanner sc = new Scanner(System.in);
                System.out.println("请录入小朋友的年龄:");
                int age = sc.nextInt();
                
                //2.根据年龄判断:
                if(age>=7){
                        System.out.println("yes");
                }else if(age>=5){
                        //录入小朋友的性别;
                        System.out.println("请录入小朋友的性别:");
                        String str = sc.next();
                        char sex = str.charAt(0);
                        if(sex=='男'){
                                System.out.println("yes");
                        }else{
                                System.out.println("no");
                        }
                }else{//age<5
                        System.out.println("no");
                }
        }
}

swith分支

		switch (表达式) {
		    case1:
		         语句序列1;
		         [break];
		    case2:
		         语句序列2;
		         [break];
		        … … …      … …
		    [default:默认语句;]
		}

switch后面是一个(),()中表达式返回的结果是一个等值,这个等值的类型可以为:
int,byte,short,char,String,枚举类型

练习:根据给出的学生分数,判断学生的等级:

public class TestSwitch{
        public static void main(String[] args){
                /*
                实现一个功能:
                根据给出的学生分数,判断学生的等级:
                >=90  -----A
                >=80  -----B
                >=70  -----C
                >=60  -----D
                <60   -----E
                */
                //1.给出学生的成绩:
                int score = 167;
                //2.根据成绩判断学生的等级:
                switch(score/10){
                        case 10 : 
                        case 9 : System.out.println("A级");break;
                        case 8 : System.out.println("B级");break;
                        case 7 : System.out.println("C级");break;
                        case 6 : System.out.println("D级");break;
                        default:System.out.println("成绩错误");break;
                        case 5 :  
                        case 4 :  
                        case 3 :  
                        case 2 :  
                        case 1 :  
                        case 0 : System.out.println("E级");break;
                        
                }
                /*
                【1】语法结构:
                switch(){
                        case * :
                        case * :
                        .......
                }
                【2】**switch后面是一个(),()中表达式返回的结果是一个等值,这个等值的类型可以为:
                int,byte,short,char,String,枚举类型**
                【3】这个()中的等值会依次跟case后面的值进行比较,如果匹配成功,就执行:后面的代码
                【4】为了防止代码的“穿透”效果:在每个分支后面加上一个关键词break,遇到break这个分支就结束了
                【5】类似else的“兜底”“备胎”的分支:default分支
                【6】default分支可以写在任意的位置上,但是如果没有在最后一行,后面必须加上break关键字,
                如果在最后一行的话,break可以省略
                【7】相邻分支逻辑是一样的,那么就可以只保留最后一个分支,上面的都可以省去不写了
                【8】switch分支和if分支区别:
                表达式是等值判断的话--》if ,switch都可以
                如果表达式是区间判断的情况---》if最好
                【9】switch应用场合:就是等值判断,等值的情况比较少的情况下
                */
        }
}

有不懂的地方可以私信~

部分内容来源于马士兵教育赵姗姗老师的Java笔记。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值