java第一次作业
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?
先导入 java.util.scanner,再通过newScanner(System.in)创建一个Scanner,输入类型也有好多种:
nextInt() :读取整型数据
nextDouble() :读取双精度数据
next()—读取输入的下一个单词(空格作为分隔符)
nextLine():读取输入的 下一行内容
import java.util.Scanner;
Scanner input=new Scanner(System.in);
int shuo=input.nextInt();
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?
在java.util.Random类中主要的功能是用于产生随机数的。
常用方法:
nextFloat() 返回一个在 0.0 和 1.0 之间均匀分布的 float 值。
nextInt() 返回一个随机int值
nextInt(int n)返回一个0(包括)和n(不包括)之间的均匀分布的int值。
3.实验中遇到的问题
字符串相等equals和‘==’的区别
String str1=new String("a");
String str2=new String("a");
str1==str2 //输出false
str1.equals(str2) //输出true
而如果这样声明
String str1="a";
String str2="a";
str1==str2 //输出true
str1.equals(str2) //输出true
4.实验总结
(1)万年历
根据1900年1月1日是周1算出月份距离1900年1月1日多少天然后用1+totalDays(year,month)%7;算出月份开始星期然后(特殊根据平年闰年算出2月多少天)输出。
package 作业;
import java.util.Scanner;
public class 日历 {
public static void main(String args[]){
Scanner input=new Scanner(System.in);
System.out.println("请输入年份");
int a=input.nextInt();
System.out.println("请输入月份");
int b=input.nextInt();
printCalender(a,b);
}
private static boolean isLeap(int year){
if (year%100 ==0){
if(year%400==0){
return true;
}
}
else {
if(year%4==0){
return true;
}
}
return false;
}
private static int days(int year, int month){
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
return 31;
}
else if(month==2){
if(isLeap(year)){
return 29;
}
else{
return 28;
}
}
else{
return 30;
}
}
private static int totalDays(int year, int month){
int a,i;
a=(year-1900)*365+(year-1900-1)/4;
for(i=1;i<month;i++){
a=a+days(year,i);
}
return a;
}
private static void printCalender(int year, int month){
int a,b,i,j,k;
a=1+totalDays(year,month)%7;
b=days(year,month);
System.out.println("\t一\t二\t三\t四\t五\t六\t七");
for(i=1,k=1;i<7;k++,i++){
if(i==a){
for(j=1;j<=b;j++,k++){
System.out.print("\t"+j);
if(k%7==0){
System.out.print("\n");
}
}
}
else{
System.out.print("\t ");
}
}
}
}
(2)猜数
嵌套循环
package 作业;
import java.util.Random;
import java.util.Scanner;
public class 猜数字 {
public static void main(String args[]){
Random rand=new Random();
Scanner scan = new Scanner(System.in);
int i;
for(;;){
int a=rand.nextInt(100);
System.out.println("答案是"+a);
for(i=1;i<=5;i++){
if(shuo(a,i)==0){
}
else{
break;
}
if(i==5){
System.out.println("5次都猜错了0分正确答案是"+a);
}
}
System.out.println("是否继续Y or N");
String q=scan.next();
if(q.equals("N")){
System.exit(0);
}
}
}
private static int shuo(int a,int i){
System.out.println("请输入您猜的价格");
Scanner input=new Scanner(System.in);
int b=input.nextInt();
if(a==b){
System.out.println("猜对了分数为"+(100-(i-1)*20)+"猜了"+i+"次");
return 1;
}
else{
if(a<b){
System.out.println("猜大了还有"+(5-i)+"次机会");
return 0;
}
else{
System.out.println("猜小了还有"+(5-i)+"次机会");
return 0;
}
}
}
}
5.代码托管

6.学习进度条
| ---- | 代码行数(新增/累积) | 学习时间(新增/累积) | 本周学习内容 |
|---|---|---|---|
| 目标 | 5000 行 | 300 h | |
| 第2-4周 | 121/121 行 | 1.5 h | 输入函数,随机数 |
| 第5周 | |||
| 第6周 |

浙公网安备 33010602011771号