设计知识点:变量、数组运算符:基本运算符、关系运算符、逻辑运算符…程序流程控制: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 位的验证码,每位可能是数字、大写字母、小写字母。