保姆级java中选择结构(if else switch)和字符串的比较

if elseif else写法

public class Demo1 {
    public static void main(String[] args) {
        int score=88;
        if (score>=90){
            System.out.println("优秀");
        }else if(score>=80){
            System.out.println("良好");
        } else if (score>=70) {
            System.out.println("中等");
        } else if (score>=60) {
            System.out.println("及格");
        }else {
            System.out.println("差");
        }
    }
}

if elseif...else构成的一个分支,是多选一的结构,是从上到下逐一判断,一旦为真,就不会往下判断,所以不能打乱顺

else if可以有多个

与或非

与:&& 或:|| 非:!

幸运抽奖

抽奖规则:会员号的百位数字等于产生的随机数字即为幸运会员

实现思路:1.产生随机数字

2.从控制台接收一位4位会员号

3.分解获得百位

4.判断是否为幸运会员

产生随机数字(0~9)的方法:int random=(int)(Math.random()*10);Math.random()只能产生【0.0~1.0)的小数

public class Demo1 {
    public static void main(String[] args) {
        System.out.println("幸运抽奖");
        System.out.println("请输入四位会员号");
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int bai=n/100%10;
        int luck=(int)(Math.random()*10);
        /*
        Math.random()产生一个[0.0,1.0)的小数,1.0取不到
        那么要产生[1.0,10.0)的数则要放大十倍,再进行强转为int则[0,9];
         */
        System.out.println("幸运数字是:"+luck);
        if(bai==luck) System.out.println("为幸运会员");
        else System.out.println("谢谢惠顾");
    }
}

字符串的比较

public class Demo1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入是否为会员");
        /*
        scanner不能接受字符,只能接受字符串
         */
        String yesno=scanner.next();
        /*
        字符跟别的比较是用==,而==是用基本数据类型比较(byte,short,int,long,float,double,char,boolen);
        而String是一种类,不是基本数据类型,所以不能用==比较,用equals方法来比较
        字符串的比较,采用字符串的equals()方法
         */
        if(yesno.equals("y"))//一定要注意字符串比较用“ ”
        {
            System.out.println("是会员");
        }else System.out.println("不是会员");
    }
}

嵌套if

题目:普通顾客购物满100打九折,会员购物打八折,会员购物满200打7.5折

思路:1.从控制台输入是否为会员

2.控制台输入金额

3.判断是否为会员的前提下根据金额大小判断打折多少

public class Demo1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入是否为会员");
        String yesno=scanner.next();
        System.out.println("请输入购物金额:");
        double money= scanner.nextDouble();
        if(yesno.equals("y"))//一定要注意字符串比较用“ ”
        {
            if(money>=200) money=money*0.75;
            else money=money*0.8;
        }else {
            if(money>=100) money=money*0.9;
            else money=money;
        }
        System.out.println("最后金额:"+money);
    }
}

if里面再嵌套一个if else

switch结构

例题:韩燕参加计算机编程大赛

如果获得第一名,将参加麻省理工大学组织的一个月夏令营

如果获得第二名,将奖励笔记本电脑一部

如果获得第三名,将奖励移动硬盘一个

否则,不给予任何奖励

解决办法:使用多重if选择结构实现,缺点:结构复杂,啰嗦

使用switch选择结构解决 特点:条件为等值判断

思路:1.先控制台输入他所获得的名次

2.根据名次判断他所应得的奖励

switch支持数据类型

switch()里面可以使用哪几种数据类型
1.byte short int char String enum(枚举)   
2.long float double 不支持

switch透传

public class Main {
    public static void main(String[] args) {
        String riqi="星期一";
        switch(riqi){
            case "星期一"://这里星期一和星期三是同一件事情,所以可以直接透传
            case "星期三":
                System.out.println("画画");
                break;
        }
    }
}

例题商品换购

是否参加换购活动:

1.满50,加两元换购可乐一瓶

2.满100,加3元换购500ml可乐一瓶

3.满100,加10元换购5公斤面粉

4.满200,加10元换购一个锅

5.满200,加20换购爽肤水一瓶

import java.util.Scanner;
​
public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入消费金额");
        double money= scanner.nextDouble();
        System.out.println("请输入是否换购");
        System.out.println("0.不换");
        System.out.println("1.满50,加两元换购可乐一瓶");
        System.out.println("2.满100,加3元换购500ml可乐一瓶");
        System.out.println("3.满100,加10元换购5公斤面粉");
        System.out.println("4.满200,加10元换购一个锅");
        System.out.println("5.满200,加20换购爽肤水一瓶");
        System.out.println("请选择");
        int i= scanner.nextInt();
        String good="不换购";//当要换一个变量的名字时,全选中变量名,右键Refactor下面rename
        switch(i){
            case 0:
            {
                money=money;
                good=good;
            }
                break;
            case 1:
            {
                if(money>=50)
                {
                    money=money+2;
                    good="可乐";
                }
                else System.out.println("不符合换购条件");
            }
                break;
            case 2:
            {
                if(money>=100)
                {
                    money=money+3;
                    good="500ml可乐";
                }
                else System.out.println("不符合换购条件");
            }
            break;
            case 3:
            {
                if(money>=100)
                {
                    money=money+10;
                    good="5公斤面粉";
                }
                else System.out.println("不符合换购条件");
            }
            break;
            case 4:
            {
                if(money>=200)
                {
                    money=money+10;
                    good="锅";
                }
                else System.out.println("不符合换购条件");
            }
            break;
            case 5:
            {
                if(money>=200)
                {
                    money=money+20;
                    good="爽肤水";
                }
                else System.out.println("不符合换购条件");
            }
            break;
        }
        System.out.println("换购物品为:"+good);
        System.out.println("总消费金额:"+money);
    }
}

当要换一个变量的名字时,全选中变量名,右键Refactor下面rename

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值