当前位置: 首页 > news >正文

第一次课动手动脑合集

1.EnumTest.java
EnumTest.java中定义了枚举Size,该枚举包含SMALL、MEDIUM、LARGE三个常量。其运行结果体现了枚举的多项核心特性:
当用引用比较枚举变量s(Size.SMALL)与t(Size.LARGE)时,结果为false,这是因为二者是不同的枚举常量;调用s.getClass().isPrimitive()返回false,表明枚举属于引用类型,而非基本数据类型;s与通过Size.valueOf("SMALL")获取的枚举变量u进行引用比较时,结果为true,这说明同一名称的枚举常量是单例对象,即仅存在一个实例;通过Size.values()方法可获取包含所有枚举常量的数组,对该数组进行循环遍历,会依次输出SMALL、MEDIUM、LARGE。
这些结果清晰展现了枚举的特性:具有单例性,即每个常量仅存在一个实例;本质是引用类型,不属于原始数据类型;提供了便捷的工具方法,其中valueOf用于按名称获取对应常量,values用于获取所有常量以便遍历。此外,枚举的每个具体值都引用一个特定的对象,相同的值则引用同一个对象,因此对于枚举类型的变量,使用==和equals()方法进行比对时,结果是等价的。
image

2.image
代码的输出结果为:第一行是X+Y=100200,第二行是300=X+Y。这是因为Java中字符串与其他类型的“+”操作遵循从左到右的运算顺序:对于"X+Y="+X+Y,最左侧以字符串"X+Y="开头,后续的“+”会将X(int型100)、Y(int型200)依次转为字符串进行拼接,最终得到"X+Y=100200";而对于X+Y+"=X+Y",最左侧是X+Y的数值运算(先计算出100+200=300),之后再将结果与字符串"=X+Y"进行拼接,因此得到"300=X+Y"。

3.随机生成四则运算题目
import java.util.Scanner;
import java.util.Random;
import java.util.InputMismatchException;
public class ArithmeticPractice {
// 定义运算符
private static final char[] OPERATORS = {'+', '-', '', '/'};
private Scanner scanner;
private Random random;
private int totalQuestions;
private int correctAnswers;
public ArithmeticPractice(int totalQuestions) {
this.scanner = new Scanner(System.in);
this.random = new Random();
this.totalQuestions = totalQuestions;
this.correctAnswers = 0;
}
// 生成随机数字(1-100之间)
private int generateNumber() {
return random.nextInt(100) + 1;
}
// 生成随机运算符
private char generateOperator() {
return OPERATORS[random.nextInt(OPERATORS.length)];
}
// 计算结果
private int calculate(int num1, int num2, char operator) {
switch (operator) {
case '+':
return num1 + num2;
case '-':
// 确保结果不为负数
return num1 > num2 ? num1 - num2 : num2 - num1;
case '
':
return num1 * num2;
case '/':
// 确保可以整除且除数不为0
if (num2 == 0) return 0;
// 调整数字使除法可以整除
return (num1 * num2) / num2;
default:
return 0;
}
}
// 运行练习
public void startPractice() {
System.out.println("欢迎参加四则运算练习!");
System.out.println("共" + totalQuestions + "道题,请输入答案(整数):\n");
for (int i = 0; i < totalQuestions; i++) {
int num1 = generateNumber();
int num2 = generateNumber();
char operator = generateOperator();
// 对于减法,确保被减数大于减数
if (operator == '-') {
if (num1 < num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
}
// 对于除法,确保可以整除
else if (operator == '/') {
// 避免除数为0,并且确保可以整除
num2 = num2 == 0 ? 1 : num2;
num1 = num1 * num2; // 确保可以整除
}
int correctResult = calculate(num1, num2, operator);
// 显示题目
System.out.printf("第%d题:%d %c %d = ? ", (i + 1), num1, operator, num2);
// 获取用户答案
int userAnswer = 0;
boolean validInput = false;
while (!validInput) {
try {
userAnswer = scanner.nextInt();
validInput = true;
} catch (InputMismatchException e) {
System.out.print("输入错误,请输入一个整数:");
scanner.next(); // 清除错误输入
}
}
// 判断答案是否正确
if (userAnswer == correctResult) {
System.out.println("正确!");
correctAnswers++;
} else {
System.out.println("错误,正确答案是:" + correctResult);
}
System.out.println();
}
// 显示结果
showResult();
scanner.close();
}
// 显示练习结果
private void showResult() {
System.out.println("练习结束!");
System.out.println("总题数:" + totalQuestions);
System.out.println("做对:" + correctAnswers + "题");
System.out.println("做错:" + (totalQuestions - correctAnswers) + "题");
System.out.printf("正确率:%.2f%%\n", (correctAnswers * 100.0) / totalQuestions);
}
public static void main(String[] args) {
// 生成30道题
ArithmeticPractice practice = new ArithmeticPractice(30);
practice.startPractice();
}
}

http://www.gsyq.cn/news/13101.html

相关文章:

  • smartctl on FreeBSD: Please specify device type with the -d option.
  • prefect
  • 课后作业1-3
  • 实用指南:clsx:高效处理 React 条件类名的实用工具
  • 课后作业2(动手动脑,课后实验性问题)
  • 从零开始构建图注意力网络:GAT算法原理与数值实现详解
  • 分解原则编写
  • iSCSI网络存储——基于VM17下麒麟V10SP1与SP2的共享配置
  • CSP-S1 2025
  • 金币
  • 【阿里DeepResearch】写作组件WebWeaver详解 - 指南
  • 完整教程:PostgreSQL 知识体系
  • 加密货币技术革命:揭秘数字复兴时代
  • 对于烧烤签子的钢材担忧
  • day20_修改 删除功能
  • Linux环境之----POSIX信号量
  • 完整教程:Flink 容错从状态后端到 Exactly-Once
  • Java语法基础课程动手动脑及课后实验问题整理文档
  • 安装包制作流程-final
  • 一般路人向第39次CSP认证
  • 完整教程:微论-神经网络的亲情密码,权重矩阵的家庭关系论
  • Ansible + Docker 部署 Apache Nifi 1.28 单用户集群
  • Godot Outline
  • SentinelOne与MITRE ATTCK企业版2025评估的深度解析
  • 详细介绍:Docker的介绍
  • react useEffect Hook讲解
  • 2025海丰杯WP
  • 2025电线电缆厂家最新权威推荐榜:聚焦电线电缆实力企业,覆盖多场景需求助力精准选购
  • 9.27课后作业
  • 调度算法,上古三算法