if-else if问题
import java.util.Scanner;
class test2{
public static void main(String[] args){
System.out.println("请输入您爱宠的年龄:");
Scanner sc1 =new Scanner(System.in);
int dogAge = sc1.nextInt();
if(dogAge > 0 && dogAge <= 2);{
double realAge = 10.5 * dogAge;
System.out.println("狗狗的实际年龄"+realAge);}
else if(dogAge > 2);{
double realAge = 10.5 * 2 + (4 * (dogAge - 2));
System.out.println("狗狗的实际年龄"+realAge);}
else if(dogAge > 30 || dogAge < 0);{
System.out.println("您输入的年龄有误");}
}
}
这里编译不通过,提示说else用法有误.
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
System.out.println("请输入您爱宠的年龄:");
Scanner sc1 = new Scanner(System.in);
int dogAge = sc1.nextInt();
if (dogAge > 0 && dogAge <= 2) {
double realAge = 10.5 * dogAge;
System.out.println("狗狗的实际年龄" + realAge);
} else if (dogAge > 2 && dogAge <= 30) {
double realAge = 10.5 * 2 + (4 * (dogAge - 2));
System.out.println("狗狗的实际年龄" + realAge);
} else if (dogAge > 30 || dogAge < 0) {
System.out.println("您输入的年龄有误");
}
}
}
错误:
1、if 和 else if 判断条件的括号()和后面的中括号 {} 之间不能有分号;
2、第 3 个判断语句的前半部分 dogAge > 30 是一直是 false 的,因为第 2个判断语句 dogAge > 2 已经包括了 dogAge > 30,我将条件改进了一下,这样,第 2 个 else if 的判断内容就有点多余了,去掉后换成 else 反而更简洁,如下
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
System.out.println("请输入您爱宠的年龄:");
Scanner sc1 = new Scanner(System.in);
int dogAge = sc1.nextInt();
if (dogAge > 0 && dogAge <= 2) {
double realAge = 10.5 * dogAge;
System.out.println("狗狗的实际年龄" + realAge);
} else if (dogAge > 2 && dogAge <= 30) {
double realAge = 10.5 * 2 + (4 * (dogAge - 2));
System.out.println("狗狗的实际年龄" + realAge);
} else {
System.out.println("您输入的年龄有误");
}
}
}
每个判断后面的分号是不是有点多余😿
应该是if和else if后面的分号的错吧