Java第一次作业——Java语言基础
(一)学习总结
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
使用该方法的的java类文档前需加语句" import java.util.Scanner; "一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。扫描器还可以使用不同于空白的分隔符。
例子:
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.next();
Int i = s.nextInt();
Double d = s.nextDouble();
System.out.println(str+i+d);
}
}
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
Random类的随机方法是设定随机种子的,(如:new Random().nextInt(10)),这里的10就是随机种子,根据随机数的原理,相同随机种子在相同的随机次数中产生的随机数是一样的.
例子:
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));
}
}
如果看Math的random方法的实现代码的话,就会发现,该方法就是调用的Random类的nextDouble()方法。
3.本次学习要点中其他需要总结的内容:因人而异,根据自己的学习情况,记录难掌握或难理解的内容,以及学有心得的内容。还存在哪些问题,也可以提出来,对于同学在博客中提出的问题,大家可以积极讨论,互帮互学。
看的似懂非懂,书上讲的内容不多。好多都不懂。
(二)实验总结
1.猜数游戏
程序设计思路:产生一个随机数,作为商品价格。输入一个数作为所猜的价格,判断大小,输出猜大了或猜小了。循环10次。
问题1:第10次没有停止
原因:进行了10次没有跳出
解决方案:if语句,break直接跳出
2.万年历
程序设计思路:其中已知1900年1月1日是星期一,从此天算起到所输入日期的总天数,然后再用totaldays%7公式算出今天是星期几。
问题1:最后万年历的输出格式不对。
原因:没有设置好换行。
解决方案:让输出的空格和日期求和之后对7求余,为0的话换行。
(三)代码托管 git@git.oschina.net:hebau_cs15/Java-CS02XJL1.git
(四)学习进度条
填写本周学习进度条。为自己设定本学期的目标,包括预计完成的代码行数,预计花多少时间在Java课程的学习上。记录自己每周完成的情况,填写下列的进度条,务必实事求是。
代码行数(新增/累积) | 学习时间(新增/累积) | 本周学习内容 | |
---|---|---|---|
目标 | 5000行 | 300小时 | |
第2-4周 | 300/300 | 30/30 | 学习了.... |
第5周 | |||
第6周 |