# 《Java技术》第一次作业

(一)学习总结

1.Scanner类数据的使用方法
需要导入java.util.Scanner
每种数据都有对应的输入方法:
需要留意的是String类型,next()方法碰到空格或者回车即结束输入,如果需要输入一整行,包含空格,应该用nextLine();
char 类型,没有输入的方法;

package java练习;
import java.util.Scanner;
public class S1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        int x=in.nextInt();  // 10
        System.out.println(x);   //10
        double y=in.nextDouble();  //2.2
        System.out.println(y);  //2.2
        float z=in.nextFloat();  //1.2
        System.out.println(z);  //1.2
        String a=in.nextLine(); //hello world
        System.out.println(a);  //hello world
        String b=in.next(); //hello world
        System.out.println(b); //hello
    }
}

2.Random类和Math类的random()方法
java.lang.Math,Math.random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0;
如果要产生一个在80~100之间的整数应

package java练习;
public class S1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x=(int)(Math.random()*20+80);
        System.out.println(x); //80
    }
}

如果用Random类,产生一个在80~100之间的整数应

package java练习;
import java.util.Random;
public class S1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Random rand = new Random(); 
        int x=rand.nextInt(20)+80; 
        System.out.println(x); //93
    }
}

如果产生double类型随机数,则使用nextDouble(),值是0~1.0;
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”,原因是浮点数类型在运算时,有极小误差。
修改方法一:使用BigDecimal类
可以使用equals方法和compareTo方法
区别:对于BigDecimal的大小比较,用equals方法的话会不仅会比较值的大小,还会比较两个对象的精确度,而compareTo方法则不会比较精确度,只比较数值的大小。equals的返回值是boolean,而compareTo的返回值为int,相等返回0;

package java练习;
import java.math.BigDecimal;
import java.math.MathContext;
public class S1 {
       public static void main(String args[]) { 
           BigDecimal a = new BigDecimal(0.1);
           BigDecimal b = new BigDecimal(0.1);
           BigDecimal c = new BigDecimal(0.1);
            if(a.add(b).add(c).round(new MathContext(1)).equals(new BigDecimal("0.3"))){
                System.out.println("等于0.3");
            }else {
                System.out.println("不等于0.3");
            }
        }
  
    }

结果:“等于0.3”;
注意:使用round方法确定精度范围,需要用到MathContext类。
在定义new BigDecimal("0.3")时,用String类型构造,若用int类型,看下例:

package java练习;
import java.math.BigDecimal;
import java.math.MathContext;
public class S1 {
       public static void main(String args[]) { 
           BigDecimal a = new BigDecimal(0.3);
           BigDecimal b = new BigDecimal("0.3");
           System.out.println(a);
           System.out.println(b);
        }
  
    }

结果:
1032124-20180314235445616-1873548365.png
修改方法二:

package java练习;
import java.math.BigDecimal;
import java.math.MathContext;
public class S1 {
        public static void main(String args[]) { 
            double a = 0.1;
            double b = 0.1;
            double c = 0.1;
            if((a + b + c) -0.3<1e-6){
                System.out.println("等于0.3");
            }else {
                System.out.println("不等于0.3");
            }
        }     
    }

(二)实验总结

1.猜数游戏
程序设计思路:
1.生成随机价格
2.输入猜的价格
3.比较两个价格,若猜错且机会没有用完,回到2
4.输入是否继续,若继续,回到1;
2.万年历
程序设计思路:
1.输入年份year,月份month
2.调用yeardays求1990到year之间的整年的天数
3.调用monthdays求1到moth之间的整月的天数
4.总天数%7取余数判断1号为星期几
3.互评成绩
程序设计思路:
1.设计求数组最值函数
2.在求平均值函数中,调用求最值函数,将每个元素求和,最后减去最值求平均
3.调用sort函数排序,输出成绩
注意:输出制表符时,应该用双引号

(三)代码托管

1032124-20180315001311377-626492517.png

转载于:https://www.cnblogs.com/TX980502/p/8571040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值