第一次课动手动脑合集

news/2025/9/27 20:31:41/文章来源:https://www.cnblogs.com/jlr1207/p/19115615

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.mzph.cn/news/919901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSON dump in Ruby

In Ruby, the json library’s API differs from Python’s json.dump. The equivalent in Ruby would be something like this:require jsondata = {name: "Christopher",message: "こんにちは世界&qu…

做搞机网站网站窗口代码

块状元素的居中&#xff0c;首先设置宽度 width"10px"&#xff0c;再设 margin: 0 auto; 。转载于:https://www.cnblogs.com/npk19195global/p/4475576.html

网站优化推广服务株洲网站建设工作室

一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…

详细介绍:python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统

详细介绍:python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

smartctl on FreeBSD: Please specify device type with the -d option.

FreeBSD:euler@rpi4b:~ % sudo camcontrol devlist Password: <YSSDJQB- 2TB 1.02> at scbus0 target 0 lun 0 (da0,pass0) euler@rpi4b:~ % ls /dev/da0 da0% da0p1% euler@rpi4b:~ % ls /dev…

GraphRAG对自然语言处理中深层语义分析的革命性影响与未来启示 - 教程

GraphRAG对自然语言处理中深层语义分析的革命性影响与未来启示 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

prefect

prefecthttps://app.prefect.cloud/account/e92c46e8-d797-4688-95c2-f14c4597b4f0/workspace/ee283a78-bf05-480e-bbd1-059318f996f1/flows

html5 网站开发语言一个好的营销型网站模板

现有代码移植到Metro App 一&#xff1a;工程配置 配置WinRT工程时要注意以下几点&#xff1a; 静态库工程General里的“Windows Store App Support”设成trueC\General下面的“Consume Windows Runtime Extension”设成Yes&#xff0c;设置该选项的目的是&#xff1a;引入Micr…

微信网站开发制作公司网站开发语言排行榜

Ctrl C 复制 Ctrl V 粘贴 Ctrl A 全选 Ctrl X 剪切 Ctrl Z 撤销 Ctrl S 保存 Ctrl Shift Esc 打开任务管理器 Shift Del 彻底删除 Win E 打开我的电脑 Win R 打开运行 Alt F4 关闭窗口 Alt Tab 切换应用程序

生成算数问题*30

生成算数问题*30package pack1; public class Suanshi { private int can1; private int can2; private int result; private char op; public int getCan1() { return can1; } …

6379:统计学生信息(使用动态链表完成)

题目 总时间限制: 1000ms 内存限制: 65536kB 描述 利用动态链表记录从标准输入输入的学生信息(学号、姓名、性别、年龄、得分、地址) 其中,学号长度不超过20, 姓名长度不超过40, 性别长度为1, 地址长度不超过40 输入…

详细介绍:云原生 vs 传统部署

详细介绍:云原生 vs 传统部署pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

使用IOT-Tree Server通过FINS协议连接欧姆龙CP2E-N系列PLC - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:疑难bug之正确处理InterruptedException

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

课后作业1-3

课后作业1-3EnumTest.java运行结果结论枚举中的每个常量都是唯一实例,可用 == 直接比较(equals()same) 不属于基本数据类型 valueOf 方法:通过字符串名称获取对应的枚举常量 使用 enum 关键字定义,常量之间用逗号…

个人备案网站名称有哪些网站做团购最好

华为设备参考&#xff1a;路由引入实验&#xff08;华为&#xff09; 技术简介 路由引入技术在网络通信中起着重要的作用&#xff0c;能够实现不同路由协议之间的路由传递&#xff0c;并在路由引入时部署路由控制&#xff0c;实现路径或策略的控制 实验目的 不同的路由协议之…

GNSS精度判断和协方差矩阵 - MKT

GNSS精度判断和协方差矩阵 havv和vacc不是GST标准差,https://blog.csdn.net/qq_38429958/article/details/135639678 https://uav.chinaflier.com/thread-25814-1-1.html 飞控需要GPS哪些信息(即需要设置哪些参数…

实用指南:clsx:高效处理 React 条件类名的实用工具

实用指南:clsx:高效处理 React 条件类名的实用工具2025-09-27 20:07 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…

Insightly模板页面存储型XSS漏洞分析与复现

本文详细分析了Insightly平台模板页面因LINK名称未正确转义导致的存储型XSS漏洞。包含完整的漏洞复现步骤、攻击原理说明以及漏洞影响分析,涉及脚本标签逃逸技术实战演示。Insightly存储型XSS漏洞报告(#1392262) 漏…

记录 | 关于陪伴型交互AI的一些探讨

关于陪伴型交互AI的一些探讨怎么说呢主要是发布下关于自己关于AI VTuber的开发进展前言 目前的化对整体内容进行了局部的优化和更新,并更新到了v0.5.0版本!【好累啊,都没什么热情了】 整体架构已经初步具备了稳定性…