# Java第一次作业——Java语言基础
Java第一次作业——Java语言基础
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?
首先创建一个Scanner对象s,构造函数的初始值为System.in,再利用s.nextInt()来接收一个int型数据ival的值,用s.nextLine()来接收String类型的name,然后分别输出。
public class InputFromConsole {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String name = s.nextLine();
int ival = s.nextInt();
System.out.println(ival + "," + name);
}
}
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
Random类区间内各数字生成的概率相等,在创建一个Random对象的时候可以给定任意一个合法的数,数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。如下:
Random rand =new Random(25);
int i;
i=rand.nextInt(100);
初始化时25并没有起直接作用
Math类,四舍五入,向下取整,每个数字随机出现的概率不相等,不用初始化,直接用Math.方法名()使用
Math.random()生成0~1的随机数
3.本次学习要点中其他需要总结的内容:因人而异,根据自己的学习情况,记录难掌握或难理解的内容,以及学有心得的内容。还存在哪些问题,也可以提出来,对于同学在博客中提出的问题,大家可以积极讨论,互帮互学。
(二)实验总结
完成实验内容过程中遇到的问题、解决方案以及程序的设计思路和思考等进行归纳总结。
程序设计思路:
用户按下开始按纽
得到一个随机数。
Random random = new Random();
random.nextInt();
用一变量s1保存。
然后等待用户输入其值。判断这个值是否等于你保存的值
如果猜对,退出。
if(s2==s1){
System.out.println("正确");
break;
}
如果猜错,提示用户,可以输入1000退出
if(s2<s1){
System.out.println("猜小了,输入1000退出");
}
if(s2>s1){
System.out.println("猜大了,输入1000退出");{
}
如果10次还没有猜对,程序结束,输出商品价格。
if(j==10){
System.out.println("正确价格是: "+s1);
}
输入1000退出
Scanner sc=new Scanner(System.in);
int sss=sc.nextInt();
int ss=1000;
while(sss==ss){
System.exit(0);
}
}
System.out.println(s1);
问题1:格式转换出现错误
原因:project和int类型定义不对
程序设计思路:
输出表头
System.out.println("===========================");
System.out.println("日 一 二 三 四 五 六");
判断每个月有多少天
switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
monthday = monthday + 31;
break;
case 4: case 6: case 9: case 11:
day=30;
monthday = monthday + 30;
break;
case 2:
if((day % 4 == 0 && day % 100 != 0) || (day % 400 == 0)){
day=29;
monthday = monthday+29;
}else{
day=28;
monthday = monthday+28;
}
break;
}
判断每年有多少天
int sum=0;
for(int i = 1900; i < year; i++){
int totalDays=0;
if((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)){
totalDays = totalDays + 366;
}else{
totalDays = totalDays + 365;
}
sum=totalDays;
一周七天,用天数%7, 判断星期几
if (weekday != 7) {
for ( j = 0; j < week; j++) {
System.out.print("\t");
}
}
for (int k = 1; k <= day; k++) {
if (weekday == 6) {
System.out.print(k + "\n");
} else {
System.out.print(k + "\t");
}
}
问题1:不能输出正确格式,不能正确输出天数,不能从1900年开始定义
原因:循环出现错误
解决方案:

代码链接
)
| 代码行数(新增/累积) | 学习时间(新增/累积) | 本周学习内容 | |
|---|---|---|---|
| 目标 | 4000行 | 300小时 | |
| 第2-4周 | 300/300 | 20/20 | scanner和random等的基本用法 |
| 第5周 | |||
| 第6周 |