JAVA学习第二周课后作业
类由数据成员和函数成员组成。
变量之间可以相互转换。
String是一个类。
static是静态、全局的意思。
经过测试,Java的枚举类型定义的Size与String一样都不是Java的原有数据类型
适当的修改测试的原程序代码:
package shangke.dierzhou;
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
String name="name";
System.out.println(name.getClass().isPrimitive());
int sss=1;
System.out.println();
System.out.println();
int i=0;
System.out.println();
for(Size value:Size.values()){
System.out.println(value);
i++;
}
System.out.println(i);
}
enum Size{SMALL,MEDIUM,LARGE};
测试结果是:
false
false
true
false
SMALL
MEDIUM
LARGE
这个测试结果证明了String和枚举定义的类型一样都不是原有数据类型。
基本的枚举类型使用方法一样掌握。
package shangke.dierzhou;
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));
}
}
这个测试让我很惊醒,正如老师所讲的在与数字打交道时要谨慎谨慎再谨慎。
double类型在精度问题上是因为在机器语言中该数据超出了double类型的位数,采取高位截断的方式导致了结果的精度差。
package text;
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");
}
}
这个代码的结果:
X+Y=100200
300X+Y
出现这种结果是因为第一个输出双引号在前所以就直接相当于字符串连接后面的“+”号相当于字符号连接符并没有进行加法
而第二个是先进行加法在遇到双引号之后才将第二个“+”当做字符串连接符号。
package shangke.dierzhou;
import java.util.Scanner;
public static void main(String[] args) {
int a1=0,a2=0;
int flag=0;
int flag1=1;
int flag2=1;
int flag3=1;
int flag4=1;
int k1=0,k2=0,k3=0,k4=0;
int s1[][]=new int[10000][2];
int s2[][]=new int[10000][2];
int s3[][]=new int[10000][2];
int s4[][]=new int[10000][2];
int n,m;
Scanner in=new Scanner(System.in);
System.out.println("请输入需要多少个题");
n=in.nextInt();
System.out.println("请输入一行几个题");
m=in.nextInt();
for(int i=1;i<=n;)
{
Random b=new Random();
Random c=new Random();
a1=b.nextInt(100);
a2=c.nextInt(100);
if(a1%4==0)
{
flag1=1;
for(int j=0;j<=k1;j++)
{
if(s1[j][0]==a1&&s1[j][1]==a2)flag1=0;
}
if(flag1==1)
{
flag=1;
//System.out.println("这是第"+i+"题");
System.out.print(a1+"+"+a2+"=");
s1[k1][0]=a1;
s1[k1][1]=a2;
k1++;
}
}
if(a1%4==1)
{
flag2=1;
for(int j=0;j<=k2;j++)
{
if(s2[j][0]==a1&&s2[j][1]==a2)flag2=0;
}
if(flag2==1)
{
flag=1;
if(a1>a2)
{
//System.out.println("这是第"+i+"题");
System.out.print(a1+"-"+a2+"=");
s2[k2][0]=a1;
s2[k2][1]=a2;
k2++;
}
else
{
//System.out.println("这是第"+i+"题");
System.out.print(a2+"-"+a1+"=");
s2[k2][0]=a1;
s2[k2][1]=a2;
k2++;
}
}
}
if(a1%4==2&&a1*a2<=100)
{
flag3=1;
for(int j=0;j<=k3;j++)
{
if(s3[j][0]==a1&&s3[j][1]==a2)flag3=0;
}
if(flag3==1)
{
flag=1;
//System.out.println("这是第"+i+"题");
System.out.print(a1+"*"+a2+"=");
s3[k3][0]=a1;
s3[k3][1]=a2;
k3++;
}
}
if(a1%4==3&&a1!=0&&a2!=0)
{
flag4=1;
for(int j=0;j<=k4;j++)
{
if(s4[j][0]==a1&&s4[j][1]==a2)flag4=0;
}
if(flag4==1)
{
if(a1%a2==0)
{
flag=1;
//System.out.println("这是第"+i+"题");
System.out.print(a1+"/"+a2+"=");
s4[k4][0]=a1;
s4[k4][1]=a2;
k4++;
}
if(a2%a1==0)
{
flag=1;
//System.out.println("这是第"+i+"题");
System.out.print(a2+"/"+a1+"=");
s4[k4][0]=a2;
s4[k4][1]=a1;
k4++;
}
}
}
if(flag==1)
{
i++;
flag=0;
System.out.print(" ");
if((i-1)%m==0)
{
System.out.println();
}
}
}
}
这个四则运算可以根据用户要求出题的个数和每行多少道题
JAVA学习第二周课后作业的更多相关文章
- 201671010140. 2016-2017-2 《Java程序设计》java学习第二周
学习第二周(Java基本程序设计结构) 这一周,着重学习了Java的简单程序设计实现及运行,通过自己操作,发现Java的程序语法大面 ...
- Java学习第二周学习笔记
20145307<Java程序设计>第二周学习总结 教材学习内容总结 Java语言中的很多基本语法都和C语言类似,以下Java中的基本语法 标识符 标识符是程序中自定义的一些名称. 由26 ...
- JAVA第三周课后作业
JAVA课后作业 一.枚举类型 代码: enum Size{SMALL,MEDIUM,LARGE}; public cl ass EnumTest { public static void main( ...
- Java学习第二周
这一周观看了黑马程序员毕向东的教学视频学习了数组的创建:数组元素的使用及遍历,类的声明,成员方法的声明,构造器的声明 数据类型[] 数组名 = new 数据类型[长度];数据类型[] 数组名 = {数 ...
- 2019 java学习 第二周总结
新学期,新气象,新老师,不同的语言学习. 我已经荒废了大一,感觉自己在大一根本没学啥,可能是自己太贪玩了,导致自己学的不精,自己对其他的见解很少. 也有自大的原因,导致自己一直浮在水平面,有实力,有耐 ...
- java 第七周课后作业0417
定义一个矩形类Rectangle:(知识点:对象的创建和使用)1 定义三个方法:getArea()求面积.getPer()求周长,showAll()分别在控制台输出长.宽.面积.周长.2 有2个属性: ...
- java第八周课后作业
1.系统小练习 package homework; import java.util.Random; import java.util.Scanner; public class Menu { pub ...
- java第十三周课后作业 0529
1.把多个企鹅的信息添加到集合中查看企鹅的数量及所有企鹅的信息删除集合中部分企鹅的元素判断集合中是否包含指定企鹅 package homework; import java.util.ArrayLis ...
- java 第六周课后作业
1.定义长度位5的整型数组,输入他们的值,用冒泡排序后输出. Scanner sc = new Scanner(System.in); int[] arr = new int[5]; for (int ...
随机推荐
- springboot mybatis 下使用注解组织查询语句(有查询条件传入)
@Select("<script>" + "select cab.brandpre_id,cab.brandpre_num_app,cab.id,cab.br ...
- Django 字段更新时报错
字段更新时会报错: -------------------------------------------------------------- 无法向未定义字段添加默认值您确认添加默认值吗? 请添加 ...
- 阿里云Zabbix安装实践过程
1.配置阿里云zabbix yum源 [root@VM_0_8_centos ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhe ...
- synchronized(三) 锁的膨胀过程(锁的升级过程)深入剖析
警告⚠️:本文耗时很长,先做好心理准备................哈哈哈 本篇我们讲通过大量实例代码及hotspot源码分析偏向锁(批量重偏向.批量撤销).轻量级锁.重量级锁及锁的膨胀过程(也就是 ...
- SpringBoot自动化配置之四:@Conditional注解详解
前言 之前在分析spring boot 源码时导出可见@ConditionalOnBean 之类的注解,那么它到底是如何使用的以及其工作流程如何,我们这里就围绕以下几点来分析: @Conditiona ...
- Linux系统下部署Tomcat服务器
详细步骤如下: 1.下载xshell5和xftp5并安装,登录连接服务器,新建会话窗口: 2.安装配置JDK1.8,具体操作方法如下: (1)下载JDK地址:http://www.oracle.com ...
- (二)Java秒杀项目之实现登录功能
一.数据库设计 CREATE TABLE `miaosha_user` ( `id` ) NOT NULL COMMENT '用户ID,手机号码', `nickname` ) NOT NULL, `p ...
- c++学习笔记之类和对象(一、类定义)
类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言. 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量:创建对象的过程也叫类的实例化.每个对象都是类的一个 ...
- 手写一个python迭代器
分析 我们都知道一个可迭代对象可以通过iter()可以返回一个迭代器. 如果想要一个对象称为可迭代对象,即可以使用for,那么必须实现__iter __()方法. 在一个类的实例对象想要变成迭代器,就 ...
- JS数据结构的栈和队列操作
数据结构:列表.栈.队列.链表.字典.散列.图和二叉查找树! 排序算法:冒牌.选择.插入.希尔.归并和快速! 查找算法:顺序查找和二分查找 在平时工作中,对数组的操作很是平常,它提供了很多方法使用,比 ...