21.Java中 Math类和Scanner类

1.Math类

public final class Math
extends Object

Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。
Math类没有构造方法,不需要对象就可以访问Math类中的变量和方法
Math类中的变量和方法都是static修饰

常用方法:

static double E :double值比其他任何一个都更接近 e ,自然对数的基数。  
static double PI:double值比任何其他的更接近 pi ,圆周长与其直径的比率。 
static double max(double a, double b) 返回两个 double值中的较大值。 
static double min(double a, double b) 返回两个 double的较小值。   
static double random() 返回值为 double值为正号,大于等于 0.0 ,小于 1.0 。 
static long round(double a) 返回参数中最接近的 long ,其中 long四舍五入为正无穷大。 
static double sqrt(double a) 返回的正确舍入正平方根 double值。  
static double pow(double a, double b) 将第一个参数的值返回到第二个参数的幂。 

public static void main(String[] args) {
		//Math中的成员变量
		//static double E :double值比其他任何一个都更接近 e ,自然对数的基数。  
		System.out.println("E=="+Math.E); //2.718281828459045
		//static double PI:double值比任何其他的更接近 pi ,圆周长与其直径的比率。 
		System.out.println("PI=="+Math.PI); //3.141592653589793
		
		//Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。
		//static double max(double a, double b) 返回两个 double值中的较大值。 
		double  num1=12.5;
		double  num2=168.8;
		System.out.println("max()=="+Math.max(num1, num2));
		//static double min(double a, double b) 返回两个 double的较小值。   
		System.out.println("min()=="+Math.min(num1, num2));
		//static double random() 得到一个0~1之间的随机数
		System.out.println("random()=="+Math.random());
		//得到1~10之间的随机数
		int suijishu1=((int)(Math.random()*10))+1;
		//得到1~100之间的随机数
		int suijishu2=((int)(Math.random()*100))+1;
		//static long round(double a) 返回参数中最接近的整数 ,可以四舍五入
		System.out.println("round()=="+Math.round(11.5)); //四舍五入12
		System.out.println("round()=="+Math.round(-11.8)); //最接近的整数12
		//static double sqrt(double a) 返回的正确舍入正平方根 double值。  
		System.out.println("sqrt()=="+Math.sqrt(9));  //3.0
		//static double pow(double a, double b) 将第一个参数的值返回到第二个参数的幂。 
		System.out.println("pow()=="+Math.pow(2,3));  //8.0
	}

由上可以做出:得到1~100之间的随机数

public static void main(String[] args) {
		//得到1~100之间的随机数
		int suijishu2=((int)(Math.random()*100))+1;
		boolean flag=true;
		//创建Scanner类的对象
		Scanner  input=new Scanner(System.in);
		while(flag){
		System.out.println("请输一个1~100之间的整数数字:");
		int inputnum=input.nextInt();
		//比较
		if(inputnum>suijishu2){
			System.out.println("您输入的数字太大了!");
		}
		if(inputnum<suijishu2){
			System.out.println("您输入的数字太小了!");
		}
		if(inputnum==suijishu2){
			System.out.println("恭喜你,才对了!");
			flag=false;
		}
		}
	}

2.Scanner类

public final class Scanner
extends Object
implements Iterator<String>, Closeable

为能够从命令提示行【控制台】来读取一个输入数据。

Scanner(InputStream source)创建一个通过字节流读取数据的Scanner对象 
InputStream---java.io包中的字节流,读取数据。
我们要从命令提示行【控制台】来读取一个输入数据,因此要求Scanner构造方法的参数InputStream指向键盘的输入操作。
System.in【InputStream】---正规的键盘输入流【“标准”输入流。】

例如:Scanner  input=new Scanner(System.in);

常用方法:

String next()接收输入的字符串数据
boolean nextBoolean()接收输入的boolean数据
double nextDouble()  接收输入的小数数据 
int nextInt() 接收输入的整数数据
String nextLine()接收输入一个整行的数据   

public static void main(String[] args) {
		//Scanner(InputStream source)创建一个通过字节流读取数据的Scanner对象
		Scanner  input=new Scanner(System.in);
		
		//String nextLine()接收输入一个整行的数据 
		System.out.println("请输入地址:");
		String address=input.nextLine();
		System.out.println("请输入姓名:");
		//String next()接收输入的字符串数据
		String name=input.next();
		//int nextInt() 接收输入的整数数据
		System.out.println("请输入年龄:");
		int age=input.nextInt();
		//double nextDouble()  接收输入的小数数据 
		System.out.println("请输入身高:");
		double height=input.nextDouble();
		//boolean nextBoolean()接收输入的boolean数据
		System.out.println("请输入性别:");
		boolean sex=input.nextBoolean();
		
		System.out.println(name+"\t"+age+"\t"+height+"\t"+sex+"\t"+address);	
	}

next()与nextLine()的区别?
        next():
                 1.停止录入的结束符有空格、Tab键和回车键(录入内容不含结束标志)
                 2.next()对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。所以next()不能得到带空格的字符串,而nextLine()是遇到回车键才结束,所以可以得到带空格的字符串。
        nextline():停止录入的结束标志只有回车键。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值