Skip to content

6.6 条件语句案例练习

练习目标

通过以下练习,巩固对 Java 条件语句(if、if…else、if…else if…else、switch)的理解和使用。

练习 1:判断奇偶数

题目描述

编写一个程序,输入一个整数,判断它是奇数还是偶数。

示例输入输出

输入:5 输出:5 is an odd number.

输入:10 输出:10 is an even number.

参考代码

java
import java.util.Scanner;

public class OddEvenChecker {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int number = scanner.nextInt();
        
        if (number % 2 == 0) {
            System.out.println(number + " is an even number.");
        } else {
            System.out.println(number + " is an odd number.");
        }
        
        scanner.close();
    }
}

练习 2:判断闰年

题目描述

编写一个程序,输入一个年份,判断它是否是闰年。

闰年的判断规则:

  1. 能被 4 整除但不能被 100 整除的年份是闰年
  2. 能被 400 整除的年份也是闰年

示例输入输出

输入:2020 输出:2020 is a leap year.

输入:2021 输出:2021 is not a leap year.

输入:2000 输出:2000 is a leap year.

输入:1900 输出:1900 is not a leap year.

参考代码

java
import java.util.Scanner;

public class LeapYearChecker {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a year: ");
        int year = scanner.nextInt();
        
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
            System.out.println(year + " is a leap year.");
        } else {
            System.out.println(year + " is not a leap year.");
        }
        
        scanner.close();
    }
}

练习 3:成绩等级判断

题目描述

编写一个程序,输入学生的成绩(0-100),输出对应的等级:

  • 90-100:A
  • 80-89:B
  • 70-79:C
  • 60-69:D
  • 0-59:F

示例输入输出

输入:95 输出:Grade: A

输入:75 输出:Grade: C

输入:55 输出:Grade: F

参考代码

java
import java.util.Scanner;

public class GradeCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter your score: ");
        int score = scanner.nextInt();
        
        if (score >= 90 && score <= 100) {
            System.out.println("Grade: A");
        } else if (score >= 80 && score < 90) {
            System.out.println("Grade: B");
        } else if (score >= 70 && score < 80) {
            System.out.println("Grade: C");
        } else if (score >= 60 && score < 70) {
            System.out.println("Grade: D");
        } else if (score >= 0 && score < 60) {
            System.out.println("Grade: F");
        } else {
            System.out.println("Invalid score.");
        }
        
        scanner.close();
    }
}

练习 4:月份天数

题目描述

编写一个程序,输入一个月份(1-12),输出该月份的天数。

示例输入输出

输入:2 输出:February has 28 or 29 days.

输入:4 输出:April has 30 days.

输入:1 输出:January has 31 days.

参考代码

java
import java.util.Scanner;

public class MonthDays {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a month (1-12): ");
        int month = scanner.nextInt();
        
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println(getMonthName(month) + " has 31 days.");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println(getMonthName(month) + " has 30 days.");
                break;
            case 2:
                System.out.println(getMonthName(month) + " has 28 or 29 days.");
                break;
            default:
                System.out.println("Invalid month.");
                break;
        }
        
        scanner.close();
    }
    
    public static String getMonthName(int month) {
        switch (month) {
            case 1: return "January";
            case 2: return "February";
            case 3: return "March";
            case 4: return "April";
            case 5: return "May";
            case 6: return "June";
            case 7: return "July";
            case 8: return "August";
            case 9: return "September";
            case 10: return "October";
            case 11: return "November";
            case 12: return "December";
            default: return "Invalid";
        }
    }
}

练习 5:计算器

题目描述

编写一个简单的计算器程序,支持加减乘除四则运算。

示例输入输出

输入:

Enter first number: 10
Enter operator (+, -, *, /): +
Enter second number: 5

输出:

10 + 5 = 15

参考代码

java
import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Enter first number: ");
        double num1 = scanner.nextDouble();
        
        System.out.print("Enter operator (+, -, *, /): ");
        char operator = scanner.next().charAt(0);
        
        System.out.print("Enter second number: ");
        double num2 = scanner.nextDouble();
        
        double result = 0;
        boolean valid = true;
        
        switch (operator) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                if (num2 != 0) {
                    result = num1 / num2;
                } else {
                    System.out.println("Error: Division by zero.");
                    valid = false;
                }
                break;
            default:
                System.out.println("Error: Invalid operator.");
                valid = false;
                break;
        }
        
        if (valid) {
            System.out.println(num1 + " " + operator + " " + num2 + " = " + result);
        }
        
        scanner.close();
    }
}

练习 6:判断三角形类型

题目描述

编写一个程序,输入三个边长,判断它们是否能构成三角形,以及构成的三角形类型(等边三角形、等腰三角形、普通三角形)。

示例输入输出

输入:3 3 3 输出:Equilateral triangle

输入:3 3 4 输出:Isosceles triangle

输入:3 4 5 输出:Scalene triangle

输入:1 2 3 输出:Not a triangle

参考代码

java
import java.util.Scanner;

public class TriangleType {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter three sides: ");
        double a = scanner.nextDouble();
        double b = scanner.nextDouble();
        double c = scanner.nextDouble();
        
        // 检查是否能构成三角形
        if (a + b > c && a + c > b && b + c > a) {
            // 检查三角形类型
            if (a == b && b == c) {
                System.out.println("Equilateral triangle");
            } else if (a == b || b == c || a == c) {
                System.out.println("Isosceles triangle");
            } else {
                System.out.println("Scalene triangle");
            }
        } else {
            System.out.println("Not a triangle");
        }
        
        scanner.close();
    }
}

练习 7:学生成绩管理

题目描述

编写一个程序,输入学生的姓名和成绩,根据成绩输出不同的评价:

  • 90-100:优秀
  • 80-89:良好
  • 70-79:中等
  • 60-69:及格
  • 0-59:不及格

示例输入输出

输入:

Enter student name: John
Enter student score: 85

输出:

John's score is 85, grade: 良好

参考代码

java
import java.util.Scanner;

public class StudentGrade {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter student name: ");
        String name = scanner.nextLine();
        System.out.print("Enter student score: ");
        int score = scanner.nextInt();
        
        String grade = "";
        if (score >= 90 && score <= 100) {
            grade = "优秀";
        } else if (score >= 80 && score < 90) {
            grade = "良好";
        } else if (score >= 70 && score < 80) {
            grade = "中等";
        } else if (score >= 60 && score < 70) {
            grade = "及格";
        } else if (score >= 0 && score < 60) {
            grade = "不及格";
        } else {
            grade = "无效成绩";
        }
        
        System.out.println(name + "'s score is " + score + ", grade: " + grade);
        
        scanner.close();
    }
}

练习 8:登录验证

题目描述

编写一个程序,模拟登录验证。预设用户名和密码,输入用户名和密码,判断是否登录成功。

示例输入输出

输入:

Enter username: admin
Enter password: 123456

输出:

Login successful!

输入:

Enter username: user
Enter password: 123456

输出:

Login failed: Invalid username or password.

参考代码

java
import java.util.Scanner;

public class LoginValidation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 预设用户名和密码
        String correctUsername = "admin";
        String correctPassword = "123456";
        
        System.out.print("Enter username: ");
        String username = scanner.nextLine();
        System.out.print("Enter password: ");
        String password = scanner.nextLine();
        
        if (username.equals(correctUsername) && password.equals(correctPassword)) {
            System.out.println("Login successful!");
        } else {
            System.out.println("Login failed: Invalid username or password.");
        }
        
        scanner.close();
    }
}

总结

通过这些练习,你应该已经掌握了 Java 条件语句的使用方法,包括:

  • if 语句:用于单一条件判断
  • if…else 语句:用于二选一的条件判断
  • if…else if…else 语句:用于多个条件的判断
  • switch 语句:用于多个固定值的判断

这些条件语句是 Java 编程中的基础,掌握它们对于编写复杂的程序非常重要。

© 2026 编程马·菜鸟教程 版权所有