Java EE-训练

设计知识点:
变量、数组
运算符:基本运算符、关系运算符、逻辑运算符…
程序流程控制:if switch for while ;死循环、循环嵌套
跳转关键字:break continue return
方法

1.买飞机票

需求:

机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
按照如下规则计算机票价格:旺季( 5-10 月)头等舱 9 折,经济舱 8.5 折,淡季( 11 月到来年 4 月)头等舱 7 折,经济舱 6.5 折。

 分析:

定义一个方法可以进行键盘录入机票原价、月份和机舱类型。
使用 if 判断月份是是旺季还是淡季,使用 switch 分支判断是头等舱还是经济舱。
选择对应的折扣进行计算并返回计算的结果。

 

import java.util.Scanner;

/**
     需求:机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
          按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
 */
public class Test1 {
    public static void main(String[] args) {
        // 3、录入购买信息,调用方法得到最终结果
        Scanner sc = new Scanner(System.in);
        System.out.println("机票原价:");
        double price = sc.nextDouble();
        System.out.println("月份:");
        int month = sc.nextInt();
        System.out.println("仓位类型(头等舱、经济舱):");
        String type = sc.next();

        double rs = calc(price, month, type);
        System.out.println("您当前购买机票的价格是:" + rs);
    }

    /**
        1、定义一个方法:形参(原价、月份、头等舱经济舱) 返回值类型申明:double
     */
    public static double calc(double money, int month, String type){
        // 2、判断月份是淡季还是旺季
        if(month >= 5 && month <= 10){
            // 旺季
            switch (type){
                case "经济舱":
                    money *= 0.85;
                    break;
                case "头等舱":
                    money *= 0.9;
                    break;
                default:
                    System.out.println("您输入的仓位不正确~~");
                    money = -1; // 当前无法计算价格了!
            }
        }else if(month == 11 || month == 12 || month >= 1 && month <= 4){
            switch (type){
                case "经济舱":
                    money *= 0.65;
                    break;
                case "头等舱":
                    money *= 0.7;
                    break;
                default:
                    System.out.println("您输入的仓位不正确~~");
                    money = -1; // 当前无法计算价格了!
            }
        }else {
            System.out.println("月份有问题");
            money = -1;
        }

        return money;
    }
}

1.遇到判断值匹配的时选择什么结构实现?

        使用switch分支结构实现。

2.遇到判断区间范围的时候选择什么结构实现?

        使用if分支结构实现。 

2. 找素数

 判断101-200之间有多少个素数,并输出所有素数?

说明

素数:如果除了1和它本身以外,不能被其他正整数整除,就叫素数。

分析

101-200之间的数据可以采用循环依次拿到; 每拿到一个数,判断该数是否是素数。

判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数

/**
    需求:找出101-200之间的素数输出:
    素数是什么:如果除了1和它本身以外,不能被其他正整数整除,就叫素数。

 */
public class Test2 {
    public static void main(String[] args) {
        // 1、定义一个循环,找到101-200之间的全部数据
        for (int i = 101; i <= 200 ; i++) {
            // i = 101 102 103 ... 199 200

            // 信号位:标记
            boolean flag = true; // 一开始认为当前数据是素数。

            // 2、判断当前遍历的这个数据是否是素数
            for (int j = 2; j < i / 2; j++) {
                if(i % j == 0){
                    flag = false; // 假设失败了,i不是素数
                    break; // 没有必要继续判定下去了!
                }
            }

            // 3、根据判定的结果选择是否输出这个数据,是素数则输出
            if(flag){
                System.out.print(i + "\t");
            }
        }
    }
}

3. 开发验证码

需求:

定义方法实现随机产生一个 5 位的验证码,每位可能是数字、大写字母、小写字母。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值