// 练习;
//根据淡旺季和年龄打印票价
//旺季 4-10. 成人18-60 60元 未成年小于18 半价 老人大于60岁(1/3)
//淡季 成人40 其他20
import java.util.Scanner;
public class NestedIf {
public static void main(String[] arge) {
Scanner jiScanner = new Scanner(System.in);
System.out.println("请输入月份");
int yue = jiScanner.nextInt();
Scanner ageScanner = new Scanner(System.in);
System.out.println("请输入年龄");
int age = ageScanner.nextInt();
if((yue < 1 || yue > 12) && (age < 1)){
System.out.println("请输入正确的月份或年龄");
}
else {
if (yue >=4 && yue <=10){
if(age >= 18 && age <= 60){
System.out.println("现在是旺季根据您的年龄所以您的票价是" +60 );
}
else if(age < 18){
System.out.println("现在是旺季根据您的年龄所以您的票价是" +30 );
}
else {System.out.println("现在是旺季根据您的年龄所以您的票价是" +20 );
}
else{
if(age >= 18 && age <=60){
System.out.println("现在是淡季根据您的年龄所以您的票价是" +40 );}
else {System.out.println("现在是淡季根据您的年龄所以您的票价是" +20);}
}
}
}
}
}
第23行出现有if无else错误 一般这种情况属于 { } 没有包裹正确
经检查发现与第23行else相对的第14行if的 { } 将第23行的else包裹住导致出错,将第28行的 }删除和在第23韩的else前添加 } 后即可。修改后的代码如下
import java.util.Scanner;
public class NestedIf {
public static void main(String[] arge) {
Scanner jiScanner = new Scanner(System.in);
System.out.println("请输入月份");
int yue = jiScanner.nextInt();
Scanner ageScanner = new Scanner(System.in);
System.out.println("请输入年龄");
int age = ageScanner.nextInt();
if((yue < 1 || yue > 12) && (age < 1)){
System.out.println("请输入正确的月份或年龄");
}
else {
if (yue >=4 && yue <=10) {
if (age >= 18 && age <= 60) {
System.out.println("现在是旺季根据您的年龄所以您的票价是" + 60);
} else if (age < 18) {
System.out.println("现在是旺季根据您的年龄所以您的票价是" + 30);
} else {
System.out.println("现在是旺季根据您的年龄所以您的票价是" + 20);
}
}else{
if(age >= 18 && age <=60){
System.out.println("现在是淡季根据您的年龄所以您的票价是" +40 );}
else {System.out.println("现在是淡季根据您的年龄所以您的票价是" +20);}
}
}
}
}
以上为个人学习所做笔记,仅供参考。如有错误欢迎指出