java第一次作业_Java第一次作业

1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。

import java.util.Scanner; //声明Scanner类

Scanner (balabala) = new Scanner(System.in); //分配空间

int i = (balabala).nextInt(); /*

btye b = (balabala).nextByte(); 实

short s = (balabala).nextShort(); 际

long l = (balabala).nextLong(); 输

double d = (balabala).nextDouble(); 入

String str = (balabala).next(); */

2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。

Random类:Random类中实现的随机算法是伪随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同随机种子在相同的随机次数中产生的随机数是一样的。

Math类:返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

public class RandomNum{

public static void main(String[] args){

Random r1 = new Random(100);//第一个Random对象r1,随机种子100

Random r2 = new Random(100);//第二个Random对象r2,随机种子100

System.out.println( " r1产生的值:" + r1.nextInt());

System.out.println( " r2产生的值:" + r2.nextInt());

System.out.println("Math.random产生的值:"+(int)(Math.random()*100));

}

}

3.运行下列程序,结果是什么?查阅资料,分析为什么。

public class Test {

public static void main(String args[]) {

double a = 0.1;

double b = 0.1;

double c = 0.1;

if((a + b + c) == 0.3){

System.out.println("等于0.3");

}else {

System.out.println("不等于0.3");

}

}

}

结果为,不等于0.3。

原因分析:Java的简单类型不能够精确的对浮点数进行运算。 通常需要创建其他方法,来进行精密计算

源程序修改版

import java.math.BigDecimal;

import org.omg.CORBA.PUBLIC_MEMBER;

public class Test {

public static void main(String args[]) {

double a = 0.1;

double b = 0.1;

double c = 0.1;

if(add( a, b, c ) == 0.3){

System.out.println("等于0.3");

}else {

System.out.println("不等于0.3");

}

}

public static double add( double d1, double d2, double d3 ) {

BigDecimal b1 = new BigDecimal( Double.toString(d1) );

BigDecimal b2 = new BigDecimal( Double.toString(d2) );

BigDecimal b3 = new BigDecimal( Double.toString(d3) );

return b1.add( b2 ).add( b3 ).doubleValue();

}

}

4:

第一章

Java由编译(Javac.exe)和解释(Java,exe)两部分组成

一个Java程序的形成:Java源文件(.Java)通过编译(Javac.exe)形成字节码文件(.class),再将字节码文件(.class)通过解释(Java.exe)生成机器码指令(10101100)再由机器去执行。

1.2JDK JRE JVM

JDK:开发工具包

JRE:运行环境

JVM:Java虚拟机

1.3Hello Java

编译源文件时需带上.java的后缀

解释成字节码文件时无需加任何后缀

编译解释时需输入主类的名字

有Public类class保存文件命名时,必须与Public class类名字一样

无Public类class保存文件命名时,不要求与class类名字一样

cd.. 返回上一级目录

cd\ 返回磁盘根目录

dir 查看当前目录

c: 进入c盘

1.4 classpath和path

Classpath:解释时,字节码文件的路径

Path:编译时,编译器命令的路径

第三章

3.1 C基本数据类型和Java基本数据类型的区别

大致相同

Java中的float赋值时需在末尾加上F或f,而double的D则可以省略

Java中多出一个boolean类型,只有两种值,ture或false

Java中每个基本数据类型都有自己的包装类,从而提供一些可以直接调用的静态方法

3.2 Integer

Integer是int的包装类 每个基本数据类型都有自己的包装类。(除int外,其余包装类形式为大写首字母)

提供了一些可以直接调用的静态方法。

Integer最大的作用在于字符串与整型上的转换,还具有自动拆箱与装箱的功能。

书中提到的Integer.MAX_VALUE必须大写

Int Max=Integer.MAX_VALUE //求int型数据的最大值

3.3 Unicode编码 字符常量和字符串常量的定界符

Unicode编码类似于C中的ASII编码;

字符常量:用‘A’

字符串常量:用“A”

3.4 float与double的比较

与C中大致类似

但float赋值时需在末尾加上F或f,而double的D则可以省略

如果在声明float时没有加上f,在编译时会提示可能丢失精度。

3.5 任何类型的值都向String转型

???

3.6 a++与++a

A++:先将a值用于计算,再将a自增

++a:先将a值自增,再将a值用于计算

3.7 &&与 & ||与 |

1:在判断过程中,第一个条件值为false,且为&&则停止判断,

2:在判断过程中,第一个条件值为true时,且为||则停止判断,

3.8

C语言中没有boolean 需要自己定义。0为假 非0为真

Java中,boolean值只有两种,true或false

3.9

三目运算符 ?:

问号左边的判断语句成立成立,则选择冒号左边的值,反之,则选择右边的

4.0 位运算

&(按位与):相同位上数字都是1,则结果为1,否则结果为0;

||(按位或): 相同位上数字存在1,则结果为1,否则结果为0;

^(按位异或):相同位上数字不同,则结果为1,否则结果为0。

异或逆运算为异或。

4.1

If else if, 下一个else if紧接在上一个else if的 } 后面

即: if() {

} else if {

………

} else {

}

Switch 语句

Switch() {

Case 语句1: balabala; break;

Case 语句2: balabala; break;

……..

Defualt : balabalabala;

}

While 与 Do …While 语句没有大变化

4.2 数组(名为数组,实为指针)

声明数组

类型 [ ] 数组名; int [ ] a; 也可以像C那样声明 int a[ ];

[ ]中不能加数字; 可以在声明时赋为null。

创建数组

数组名 = new 类型 [数组长度];

数组名 = new 类型 [ ] { 数组要存储的数值,用逗号隔开 }

举个栗子:

int[ ] i=new int[5];

int[ ] i=new int[]{0,1};

int[ ] i={0,1};

数组的单元(元素)

A[0]~~~A[数值-1]

数组长度

一维数组 数组名.length System.out.println(数组名.length);

二维数组数组名.length实际长度为该二维数组中一维数组的个数

二维数组的本质就是行数个长为列数的一维数组

数组的初始化

类型 [ ] 数组名 = { , , , };

一维数组: int [ ] A = { 1,2,3,4,5}

二维数组: int [ ] [ ] S = { { 1,2,3},{ 2354,55,,36,6,} }

数组的引用

数组变量本身存放的值称作数组的引用

数组使用下标运算访问自己的单元

两个类型相同的数组,一旦二者具有相同的引用,那么二者具有一样的单元。

实验总结:

1:随机价格

让对象输入要猜的价格。让输入的价格与真实价格进行比较,对比较结果进行记录,若猜对,则为flag = 1,并输出用户得分. 否则为0;并让用户选择是否进行下一步。若达到上限仍未猜对,则终止用户输入权限,直接输出商品价格。

问题:用户第五次猜对退出程序和达到上限猜错被迫退出程序,如何进行分辨?

解决: FLAG =1 的标志符

2:万年历

以前用C写过,没什么大问题。在方法的定义上与老师要求有出入。

先判断平闰年 由此,程序进入平闰年分支

再判断从1900年打到该月份前有多少天。 此处定义两个方法,平闰年分开判断,下个步骤同理

接着判断该月份有多少天。

判断该月份第一天是周几。

剩下的就是慢慢调整输出格式

3:选手成绩

问题:选手成绩的存储,选手平均成绩的存储

解决:评委对选手成绩用二维数组存储, 平均成绩则另行定义一个一维数组

Arrays类。 第一个用到的Java类,

9e4100919cc442645824ddc8ab176b4b.png

6301ae9f7f0486c7ae04bf406b9aef25.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值