模拟要求:用户输入一个数,程序也将在一定范围里随机产生一个随机数,两数做比较。两数相同时输出“猜对了”,并输出猜的次数和猜对的概率;不同时输出“猜错了”,并继续猜数,直到猜对为止。
1.创建一个包,名为OUT,包里创建一个Main类
package OUT;
import OUT2.Test;
import java.util.*;
public class Main
{
public static int cs=1;
public static void main(String[] args)
{
Scanner sr=new Scanner(System.in);
do
{
System.out.print("请输入你猜的数:");
int a=sr.nextInt();
Random b=new Random();
int Sr=b.nextInt(10);
System.out.println("随机数是:"+Sr);
Test we=new Test();
if(a==Sr)
{
we.True();
Test.flag=0;
break;
}
else
{
we.False();
cs++;
}
}while(Test.flag==1);
}
}
2.再创建一个包为OUT2,同时创建一个类名为Test
package OUT2;
import OUT.*;
public class Test
{
public static int flag=1;
public void True()
{
double gl;
System.out.println("猜对啦!");
System.out.print("你猜了"+Main.cs+"次,");
gl=Math.round((1.0/Main.cs)*1000)/10.0;//Math.round先会将数做整数化处理,同时会四舍五入,之后在/10还原小数位置
System.out.println("你猜对的概率为:"+gl+"%");
}
public void False()
{
System.out.println("猜错了!");
System.out.println();
}
}
▲拓展:
static关键字可以加在成员变量或方法的声明中,即static关键字通常出现在访问修饰符(如public
、private
)之后,返回类型之前。使用static的变量或方法在内存中只有一份副本,无论创建了多少个类的实例,所有该类的实例都共享同一个静态变量的值。所以可以通过类名直接访问静态变量或方法,无需先创建类的实例,这是static的一大优点。但是频繁地使用static也会造成弊端,如线程的安全性问题、可维护性较差等等都是它的潜在风险。
Math.round函数是Java的一个数学函数,用于将浮点数或双精度数四舍五入为最接近的整数。以下是其使用规则:
- 如果参数是正数且小数部分大于等于 0.5,则返回大于或等于该参数的最小整数。如1.5 -> 2.0
- 如果参数是负数且小数部分绝对值大于0.5,则返回小于或等于该参数的最大整数。如-1.6 -> -2.0
- 如果参数是正数且小数部分小于 0.5,则返回小于参数的最大整数。如1.4 -> 1.0
- 如果参数是负数且小数部分绝对值小于等于 0.5,则返回大于参数的最小整数。如-1.4 -> -1.0,-1.5->-1.0