JAVA课后作业

news/2024/9/27 11:51:00

1.枚举值的foreach迭代:
public class Enum {
private enum MyEnum{
ONE,TWO,THREE
}
public static void main(String [] args) {
for(MyEnum value:MyEnum.values()) {
System.out.println(value);
}
}
}
这种foreach枚举迭代,无需知道具体枚举的数量,直接就可以按序枚举

2.两数相加的对话框展示
import javax.swing.JOptionPane; // import class JOptionPane

public class Enum {
// An addition program
public static void main( String args[] )
{
String firstNumberString,secondNumberString;
int number1,number2;

	   firstNumberString = JOptionPane.showInputDialog("Enter first integer");secondNumberString = JOptionPane.showInputDialog("Enter second integer");//字符串类型转化为整型number1 = Integer.parseInt(firstNumberString);number2 = Integer.parseInt(secondNumberString);int sum = number1+number2;JOptionPane.showMessageDialog(null, "This sum is "+ sum ,"Rssult",JOptionPane.PLAIN_MESSAGE);System.exit(0);}

}
第一次了解了JOptionPane这种在JAVA可以展示对话框的类,还有Integer.parseInt这种将字符串转化成整型的方法

3.精度损失测试

public class Enum {
public static void main(String[] args) {
double number1 = 123456789;
float number2 = (float) number1;
System.out.println(number1);
System.out.println(number2);
}
}在double类型强转成float类型时出现了精度损失,第一次的输出为1.23456789E8
第二次的输出为1.23456792E8
同理那个Int Long long类型转化成float和double类型的时候都会出现精度损失的问题

double数值进行计算时出现问题
public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
输出:
0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999
我知道在计算机中所有的数据都是以二进制的方式存储的,所有的浮点型数据都是近似的值,所以
在小数类的计算时,精度是无法保证的

改进精度,使用BigDecimal类
import java.math.BigDecimal;
public class Enum {
public static void main(String[] args)
{
BigDecimal f1 = new BigDecimal("0.05");
BigDecimal f2 = BigDecimal.valueOf(0.01);
BigDecimal f3 = new BigDecimal(0.05);
System.out.println("下面使用String作为BigDecimal构造器参数的计算结果:");
System.out.println("0.05 + 0.01 = " + f1.add(f2));
System.out.println("0.05 - 0.01 = " + f1.subtract(f2));
System.out.println("0.05 * 0.01 = " + f1.multiply(f2));
System.out.println("0.05 / 0.01 = " + f1.divide(f2));
System.out.println("下面使用double作为BigDecimal构造器参数的计算结果:");
System.out.println("0.05 + 0.01 = " + f3.add(f2));
System.out.println("0.05 - 0.01 = " + f3.subtract(f2));
System.out.println("0.05 * 0.01 = " + f3.multiply(f2));
System.out.println("0.05 / 0.01 = " + f3.divide(f2));
}
}
在构建对象时使用String类型原因是,使用String类型可以精确的表示十进制的任何数字,而不会出现精度的损失,如果使用
double数据类型,则在创建BigDeCimal时穿进去的是一个double类型的近似值

字符串链接的相关注意:
public class Enum {
public static void main(String[] args)
{
int X = 100;
int Y = 200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"= X+Y");
}
}
二者输出不同,第一个输出是加了两个字符串,第二个是先计算二者的相加值,在加一个字符串,第一个相当于三个字符串,第二个相当于两个

  1. 随机数的生成
    import java.util.Random;

public class Enum {
public static void main(String[] args)
{
Random random = new Random();
for(int i = 0;i < 30;i++) {
int number1 = random.nextInt(11)+1;
int number2 = random.nextInt(11)+1;
int middle = random.nextInt(4);
switch(middle) {
case 0:
System.out.println(number1+" + "+number2+" =");
break;
case 1:
System.out.println(number1+" - "+number2+" =");
break;
case 2:
System.out.println(number1+" * "+number2+" =");
break;
case 3:
if(number2==0) {
i--;
continue;
}else {
System.out.println(number1+" / "+number2+" =");
}
}
}
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65352.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

渗透测试入门

什么是渗透测试? 定义: 渗透测试完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知…

常间的css样式问题处理

flex导致文字省略失效 单独使用文字省略,按预期工作: 给元素加上flex,文字省略失效: 解决方案:flex和文字省略不要放到一个元素上。 flex布局中,文字溢出省略不生效的问题 问题展示.container {display: flex;width: 400px;border: 1px solid #000; }.content {flex: 1; …

Spring上传文件乱码问题(问号版)

Spring上传文件乱码问题(问号版) 目录Spring上传文件乱码问题(问号版)一、问题描述:二、原因分析三、解决办法 一、问题描述: spring项目上传文件,后端接收文件并获取文件名称,名称中文变成 “?”,例如:??abc()??.xml,其中问号为中文字符 // 前端传递参数 Mult…

伯俊开发回忆录---云POS待办事项增加稽核通知功能

一、事件前景总部财务稽核通知下发流程: 1.整理EXECL通知督导, 2.督导通知对应的门店, 3.收集完反馈意见汇报给分区财务审核 4.分区财务审核之后再通知总部财务审核, 这样整个稽核流程以及周期将大大影响稽核效率,因此希望在云POS门店端直接增加待办事项减少中间沟通环节。…

我,一个小白,居然用 AI 工具修改了公司前端代码!

背景 有一天同事发现公司网站的某个页面上有三个 H1 标签,懂行的都知道,有三个 H1 标签虽然不会对网站的访问产生影响,但是对于搜索引擎来讲,就比较麻烦了,因为一般搜索引擎都是靠 H1 标签、TDK 等来对网页的内容进行抓取,然后再进行质量优劣的判断。三个 H1 标签,搜索引…

Docker打包Net8.0镜像

Docker 常用命令 Docker 是一种用于构建、打包和运行应用程序的容器化工具,以下是一些常用的 Docker 命令及其说明: 1. Docker 基础命令 docker version # 查看 Docker 的版本信息 docker info # 查看 Docker 系统信息 docker build -t <image_name> . #构建镜像 docke…

利用Python开发Exporter,集成Prometheus和Grafana对进程监控

利用Python开发Exporter,集成Prometheus和Grafana对进程监控 在现代软件开发和运维中,监控是确保系统稳定运行和快速响应问题的重要手段。Prometheus和Grafana的组合是监控领域的强大工具,它们能够收集、处理和展示各种指标数据。本文将介绍如何利用Python开发一个Exporter,…

软工结对项目

这个作业属于哪个课程 结对项目这个作业要求在哪里 结对项目这个作业的目标 合作完成一个自动生成小学四则运算题目的命令行程序结对组合成员介绍结对组合成员姓名 学号 GitHub项目地址苏清仪 3222004337 GitHub项目地址张易欣 3222004811 GitHub项目地址PSP表格PSP2.1 Persona…