今天写的一个java多重循环嵌套的小练习
题目需求:判断不同月份中经济舱和头等舱的机票价格,且输入的月份和选择座位的指令错误是进行提示后重新输入
已知:机票原价为5000元,4到10月份为旺季,经济舱价格为6折,头等舱为9折
其他月份为淡季,经济舱价格为4折,头等舱为5折
以下是代码:
import java.util.Scanner;
public class Work_plane {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 定义机票原价price为5000元
int price = 5000;
// 外层for循环判断输入的月份是否正确
for (int i = 1; i == 1;) {//当i为1时一直循环
System.out.println("请输入您出行的月份:1~12");
int month = input.nextInt();
if (month <= 0 || month > 12) {//当输入月份不是1~12的整数时执行此代码,且跳过else里面的内容
System.out.println("请输入正确的月份");
i = 1;
} else {//输入正确的月份执行此代码
i = 0;//对i赋值为0,最后用于结束外层for循环
for (int j = 1; j == 1;) {//内层for循环,判断经济舱和头等舱的指令是否正确
System.out.println("请输入您选择头等舱还是经济舱? 头等舱输入:1,经济舱输入:2");
int plane = input.nextInt();
if (plane != 1 && plane != 2) {//输入指令不是1和2时执行此代码,跳过else内容
System.out.println("请输入正确的指令");
j = 1;
} else {//指令正确时执行此代码
j = 0;//对j赋值为0,用于结束内层for循环
if (month >= 4 && month <= 10) {//判断月份为旺季
if (plane == 1) {//判断头等舱机票
System.out.println("您的机票价格为:" + (price * 0.9));
} else if (plane == 2) {//判断经济舱机票
System.out.println("您的机票价格为:" + (price * 0.6));
}
} else if ((month < 4 && month > 0)
|| (month > 10 && month <= 12)) {//判断月份为淡季
if (plane == 1) {
System.out.println("您的机票价格为:" + (price * 0.5));
} else if (plane == 2) {
System.out.println("您的机票价格为:" + (price * 0.4));
}
}//淡季月份结束
}//else
}//内层for循环
}//else
}//外层for循环
}
}
以下是效果图