java第一次作业
(一)学习总结
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
***输入数据.
最简单的数据输入直接使用scanner类的next()方法。
import java.util.Scanner;
public class ScannerDemo01{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);//从键盘接收数据
System.out.print("输入数据:");
String str=scan.next();
System.out.println("输入的数据为:"+str);
}
}
运行中发现如果输入空格,但是空格后的东西没有了,造成此结果原因是因为scanner将空格当作了一个分隔符,为了保证程序的正确,可将分隔符号修改为\n(回车)
import java.util.Scanner;
public class ScannerDemo01{
public static void main(String[] args){
**Scanner scan=new Scanner(System.in);//从键盘接收数据**
**scan.useDelimiter("\n");//修改输入数据的分隔符**
System.out.print("输入数据:");
**String str=scan.next();**
System.out.println("输入的数据为:"+str);
}
}
以上代码完成了字符串内容的输入,输入float或int类型的数据,在scanner中支持,最好使用hasNextInt和hasNextFloat进行验证。
import java.util.Scanner;
public class ScannerDemo01{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int i;
float f=0.0f;
System.out.print("输入整数: ");
if(**scan.hasNextInt()**)**//判断输入的是否是整数**{
**i=scan.nextInt();//接受整数**
System.out.print("整数:"+i);
}else{
System.out.print("输入的不是整数!");
}
System.out.print("输入小数: ");
if(**scan.hasNextFloat()**)**//判断是否是小数**{
**f=scan.nextFloat();//接收小数**
System.out.print("小数:"+f);
}
else{
System.out.print("输入的不是小数!");
}
}
}
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
Math类包含了所用用于几何和三角浮点运算方法,这些方法都是静态的。
例:四舍五入:public static long round(double a);
round()是将小数点之后的所有小数位四舍五入,最后只剩下整数部分。
double num=88.678;
System.out.println(Math.round(num));//输出结果为89.
Random类是一个随机数产生器,随机数是按照某种算法产生的一旦用一个初值创建Random对象,就可以得到一系列随机数。
例:利用Random类来产生5个0---100之间的随机整数。
import java.util.Random;
public class RandomDemo01{
public static void main(String[] args){
Random r=new Random();//建立一个Random对象用于生成随机数
for(int i=0;i<5;i++)//循环5次,最后结果会生成5个整数
{
System.out.print(r.nextInt(100)+"\t ");//输出随机数,设置字段100个,并在每个随机数间加上空格
}
}
}
利用Random随机产生一组数,但这种方式的结果是事先未知的。可以用来编写验证码。
3.本次学习要点中其他需要总结的内容:因人而异,根据自己的学习情况,记录难掌握或难理解的内容,以及学有心得的内容。还存在哪些问题,也可以提出来,对于同学在博客中提出的问题,大家可以积极讨论,互帮互学。
(二)实验总结
对完成实验内容过程中遇到的问题、解决方案以及程序的设计思路和思考等进行归纳总结。
1.猜商品价格游戏:
程序设计思路:
1.1
Scanner input=new Scanner(System.in);
System.out.println("请输入所猜商品的价格(0到100)之间");
int price=input.nextInt();
运用Scanner类next()方法进行输入和输出数据
1.2 int i=10;
if(price==100)
System.out.println("恭喜你猜正确,获得满分10分");
出现问题:使用整型变量要提前声明int
1.3 System.out.println("输入0则退出游戏,回车后继续游戏");
String c0 = "0";
Scanner Look0= new Scanner(System.in);
if (Look0.nextLine().equals(c0)) {
System.out.println("退出成功,共获得" + i + "分!!");
System.exit(0);}
else
{
使用equals()函数进行 数据之间的比较,这里运用了scanner next()方式对look0进行输入输出数据,而c0所设置的是字符串形式。退出直接使用System.exit();
我的反思:
这几个方法后来想想还是挺简单的,但是之前却运用了好多次都不正确。还有本来的思路是使用switch case方法,但是考虑到价格之间的波动性屡次使用都不成功,于是就直接一口气用了好多if else语句,但是最后编出来的还是有很明显的局限性:就是你必须按照本程序的一定向的顺序来运行方能成功,否则 随便输入的话结果就不对了,so,我想我还得思考一下这个问题怎么解决。在这之前,若想保持本程序的基本运作,就必须按照其顺序进行操作。
2.万年历的编辑
程序设计思路:
2.1
boolean runnian=false;
if((year%4==0&&year%100!=0)||(year%400==0))
{runnian=true;}
else
{runnian=false;}
if(runnian)
{System.out.println(year+"为闰年");}
else
{System.out.println(year+"为平年");}
声明一个boolean布尔型的变量runnian,用于判断你所输入的年份是不是闰年,布尔型只有两个取值:true和false.
2.2 判断每个月有多少天用switch case方法来解决。
我的反思:
这个程序我学习了布尔类型变量的使用,虽然将每个月的星期的框架列出来了,但是却不会依次列出日期,思考了这个月的第一天是星期几的问题没能解决,还有日期不能依次列出的问题没能解决。总的来说我的这个程序能够清晰的运行出某年某月有多少天,也算有些许的进步。
(三)代码托管
码云commit历史截图
上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图,同时应该给出git项目的链接。
(四)学习进度条
学习时间 | 本周学习内容 | 代码行数 |
---|---|---|
目标 | 5000行 | 300小时 |
第2-4周 | 30/30 | equals,scanner,random,布尔型变量等基本的用法 |
第5周 | ||
第6周 | ||
———————————————————————————————————— |