Appearance
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:判断闰年
题目描述
编写一个程序,输入一个年份,判断它是否是闰年。
闰年的判断规则:
- 能被 4 整除但不能被 100 整除的年份是闰年
- 能被 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 编程中的基础,掌握它们对于编写复杂的程序非常重要。
