练习一:飞机票
需求:
机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
代码示例:
package com.itheima.test;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
/* 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。*/
//分析:
//1.键盘录入机票原价、月份、头等舱或经济舱
Scanner sc = new Scanner(System.in);
System.out.println("请输入机票的原价");
int ticket = sc.nextInt();
System.out.println("请输入当前的月份");
int month = sc.nextInt();
System.out.println("请输入当前购买的舱位 0 头等舱 1 经济舱"); // 不能使用 true / false,因为之后有可能还需要加商务舱
int seat = sc.nextInt();
//2.先判断月份是旺季还是淡季
//IDEA快捷键:ctrl + alt + M 自动抽取方法 首先选中要抽取的代码,然后按住快捷键
if (month >= 5 && month <= 10) {
//旺季 //3.继续判断当前机票是经济舱还是头等舱
//ticket = getPrice(ticket, seat, 0.9, 0.85);
ticket = getTicket(ticket, seat, 0.9, 0.85);
} else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {
//淡季
//ticket = getPrice(ticket, seat, 0.7, 0.65);
ticket = getTicket(ticket, seat, 0.7, 0.65);
} else {
//表示键盘录入的月份是一个非法数据
System.out.println("键盘录入的月份不合法");
}
System.out.println(ticket);
}
public static int getTicket(int ticket, int seat, double v, double v2) {
if (seat == 0) {
//头等舱
ticket = (int) (ticket * v); // ticket * v 得到的是一个小数,结果得到的小数赋值给一个整数需要进行强转
} else if (seat == 1) {
//经济舱
ticket = (int) (ticket * v2);
} else {
System.out.println("没有这个舱位");
}
return ticket;
}
//1.我要干嘛?根据舱位和折扣来计算最终的票价
//2.我干这件事,需要什么才能完成?原价 舱位 头等舱的折扣 经济舱的折扣
//3.方法的调用处是否需要继续使用这个结果 需要
/* public static int getPrice(int ticket, int seat, double v0, double v1) {
if (seat == 0) {
//头等舱
ticket = (int) (ticket * v0);
} else if (seat == 1) {
//经济舱
ticket = (int) (ticket * v1);
} else {
System.out.println("没有这个舱位");
}
return ticket;
}*/
}
二、IDEA抽取方法快捷键
IDEA快捷键:ctrl + alt + M 自动抽取方法 首先选中要抽取的代码
然后按住快捷键 ctrl + alt + M
之后会弹出一个页面,说收取完后还有重复的代码,是否要一起抽取,点击 Accept Signature Change
即可。
接下来又会有一个提示:这段重复代码要不要用调用方法的形式去调用,必须的噻,所以点击 Replace
练习二:打印素数
判断101~200之间有多少个素数,并输出所有素数。
备注:素数就是质数
代码示例:
package com.itheima.test;
public class Test2 {
public static void main(String[] args) {
//判断 101 ~ 200 之间有多少个素数,并打印所有素数
//思路一: 2 ~ 99
//定义变量i ,赋值100
//判断i是否为质数
//定义一个变量用来统计有多少个质数
int count = 0;
//外循环:遍历101~200这个范围,依次得到这个范围之内的每一个数字
for (int i = 101; i <= 200; i++) {
//i 依次表示循环中的每一个数字
//继续判断i是否为一个质数
boolean flag = true;
//内循环:判断当前数字是否为一个质数。
for (int j = 2; j < i; j++) {
//j 表示2~99之间的每一个数字
if(i % j == 0){
flag = false;
//跳出单层循环,即内循环
break;
}
}
if(flag){
System.out.println("当前数字"+i+"是质数");
count++;
}
}
System.out.println("一共有" + count + "个质数");
/* int i = 7;
boolean flag = true;
for (int j = 2; j < i; j++) {
//j 表示2~99之间的每一个数字
if(i % j == 0){
flag = false;
break;
}
}
if(flag){
System.out.println("当前数字是质数");
}else{
System.out.println("当前数字不是一个质数");
}*/
}
}