案例01:买飞机票
- 机票价格按照淡季旺季,头等舱和经济舱收费,输入机票原价,月份和头等舱或者经济舱。
- 机票最终优惠价格的计算方案如下:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//1.输入机票要选择的原价,月份,舱位类型
Scanner sc = new Scanner(System.in);
System.out.print("请您输入机票的原价:");
double money = sc.nextInt();
System.out.print("请您输入机票的月份(1-12):");
int month = sc.nextInt();
System.out.print("请您输入要选择的舱位类型:");
String type = sc.next();
System.out.println("您优惠后的价格为:" + calc(money, month, type));
}
//2.定义新方法计算机票最终优惠价格
public static double calc(double money,int month,String type){
if (month >= 5 && month <= 10){
//旺季
switch (type){
case "头等舱":
money *= 0.9;
break;
case "经济舱":
money *= 0.85;
break;
default:
System.out.println("您输入的舱位类型有误。");
money = -1;
}
}else if (month == 11 || month == 12 || month >= 1 && month <= 4){
//淡季
switch (type){
case "头等舱":
money *= 0.7;
break;
case "经济舱":
money *= 0.65;
break;
default:
System.out.println("您输入的舱位类型有误。");
money = -1;
}
}else {
System.out.println("sorry,您输入月份有误……");
money = -1;
}
return money;
}
}
案例02:找素数
- 素数:如果除了1和它本身以外,不能被其他正整数整除,就叫素数。
- 判断101-200之间有多少个素数,并输出所有素数。
//判断规则:从2开始遍历到该数的一半的数据,看是否有数据可以整除,有就不是素数,没有就是素数
//其实从2到开平方的那个数就可以判断是不是素数了,这里使用的是2到一半的方法判断是不是素数
public class Demo02 {
public static void main(String[] args) {
for (int i = 101; i < 200; i++) {
boolean flag = true;//信号位:标记,一开始认为当前数据是素数
//这里使用j<i/2,而不是<=,因为如果i/2可以被整除证明这个数是素数了就不需要用等号了
for (int j = 2; j < i/2 ; j++) {
//不是素数
if (i % j == 0){
flag = false;
break;
}
}
//判断是素数,再进行输出
if (flag){
System.out.println("以下是101-200之间的素数:");
System.out.print(i + "\t");
}
}
}
}
案例03:验证码
- 定义方法实现随机产生一个5位的验证码,每位可能是数字,大写字母,小写字母。
import java.util.Random;
public class Demo03 {
public static void main(String[] args) {
System.out.println("随机生成的5位验证码为:" + createCode(5));
}
public static String createCode(int n){
//3.定义一个字符串记录随机生成的字符
String code = "";
Random r = new Random();
//1.for循环用于循环n次,依次生成随机字符
for (int i = 0; i < n; i++) {
//2.随机生成带有数字,英文大写,英文小写的字符串;
//这里使用Random()方法生成随机字符串,0,1,2分别代表英文大写,英文小写,数字,从而实现随机生成验证码
int type = r.nextInt(3);
switch (type){
case 0://英文大写(A:65~Z:(65+25))-->(bound:26)+65
char ch = (char) (r.nextInt(26)+65);
code += ch;
break;
case 1://小写字符(a:97~z:(97+25))-->(bound:26)+97
char ch1 = (char)(r.nextInt(26)+97);
code += ch1;
break;
case 2://数字(0-9)-->(bound:10)
code += r.nextInt(10);
break;
}
}
return code;
}
}
. . .
相关推荐
热门推荐
Java 高级 - 解释与执行
202天前
【包含-鸿蒙开发】设置全屏(隐藏状态栏、...
200天前
《MySQL入门教程》第24章 DML语...
200天前
我投的简历全没了,一个月只收到2份面试邀...
199天前
HbuilderX学习—— 简单项目实战
196天前
微信小程序——自定义tabbar样式
196天前
简单复习Object.definePro...
196天前
基于 dynamic-datasourc...
196天前
nodejs操作mongodb之二(mo...
196天前
Tp6 多应用下路由有些没有效果,这是为...
188天前
最新推荐
什么是数据透传
200天前
在学习序列之前预览知识
200天前
为什么大多数人觉得编程很难?
196天前
【c语言】一辆卡车违犯交通规则,撞人逃跑...
196天前
如何把其他代码托管平台git仓库迁移到g...
196天前
大数据随记 —— DataFrame 数...
196天前
Go语言中接口interface(多接口...
196天前
多种方法o.jsonwebtoken.E...
196天前
给女朋友写一个微信小程序
195天前
如何从零开始开发自己的vue项目,打造自...
188天前
ads via 小工具