今天,接着跟大家分享一波Java编程,我是参照《Java程序设计》书编的程序。
代码如下图:
/**
* Finish_time:2021/3/28
* @author Mr.Pan_学狂
* Java practice
*/
import java.util.*;
//import javax.swing.*;
class Example9{
public static void main(String[] args) {
System.out.println("Java使我快乐!!");
test();
test2();
test3();
test4();
test5();
test6();
test7();
test8();
test9();
test10();
test11();
}
public static void test() {
int number = (int)(Math.random() * 101);//生成0-100的随机数[0,100]
Scanner input = new Scanner(System.in);
System.out.println("猜数,区间是[0,100]");
while(true) {
System.out.print("\n请输入猜的数字: ");
int guess = input.nextInt();
if(guess == number) {
System.out.println("恭喜你猜对了,这个数字是 "+number);
break;
}
else if(guess > number) {
System.out.println("你猜的数字高了!");
continue;
}
else {
System.out.println("你猜的数字低了!");
continue;
}
}
}
public static void test2(){
//猜数程序
int number = (int)(Math.random() * 101);//生成[0-101]的随机数
Scanner input = new Scanner(System.in);//创建输入对象
System.out.println("请猜一个在0-100之间的数字");
int guess = -1;
while(guess != number) {
//如果猜的数字与生成的随机数不一致
System.out.print("\n请猜数:");
guess = input.nextInt();//获取键盘输入
if(guess == number) {
System.out.println("恭喜你猜对了,数字是"+number);
}
else if(guess > number) {
System.out.println("你猜的数字大了!");
}
else {
System.out.println("你猜的数字小了!");
}
}
}
public static void test3() {
//简单计算测试
final int number_of_questions = 5;//设置5个问题
int correctCount = 0;//设置初始的正确答案计数为0
int count = 0;//设置计数为0
long startTime = System.currentTimeMillis();//设置开始时间
String output = "";//设置字符串为空字符串
Scanner input = new Scanner(System.in);//创建输入对象
while(count < number_of_questions) {
//如果计数小于问题的数目
int number1 = (int)(Math.random() * 10);//随机生成第一个数字
int number2 = (int)(Math.random() * 10);//随机生成第二个数字
if(number1 < number2) {
//如果第一个数字小于第二个数字
int temp = number1;//定义一个中间变量temp,用于将number1和number2的值互换
number1 = number2;
number2 = temp;
}
System.out.print(number1+" - "+number2+"? ");
int answer = input.nextInt();//输入整数
if(number1 - number2 == answer) {
//如果计算结果与答案相同时
System.out.println("恭喜你答对了!");
correctCount++;//回答正确,计数器自增1
}
else {
System.out.println("你的答案是错误的\n"+number1+" - "+number2+"应该是"+(number1 - number2));
}
count++;//每次问题结束后,计数器自增1
output += "\n" + number1 + " - " + number2 + " = " + answer + ((number1 - number2 == answer) ? " 正确" : " 错误");
}
long endTime = System.currentTimeMillis();//设置结束时间
long testTime = endTime - startTime;//做题花费的总时长时间
System.out.println("总计答对" + correctCount +"个题目" + "\n答题花费时间:" +
testTime / 1000 + "秒钟\n" + output);
}
public static void test4() {
//输入数字求和
Scanner input = new Scanner(System.in);//创建输入对象
System.out.print("请输入一个整数(输入0退出):");
int data = input.nextInt();
int sum = 0;
while(data != 0) {
sum += data;
System.out.print("请输入一个整数(输入0退出):");
data = input.nextInt();
}
System.out.println("求和的结果是:"+sum);
}
public static void test5() {
//输入数字求和
int data;
int sum = 0;//初始的求和为0
Scanner input = new Scanner(System.in);//创建输入对象
do {
//做一次循环
System.out.print("输入一个整数(输入0退出):");//当行输入
data = input.nextInt();//获取键盘的输入
sum += data;//求和
}
while(data!=0);//若是输入的数字不为0,继续循环,否则只执行一次循环就退出。
System.out.println("求和结果是:"+sum);
}
public static void test6() {
//自己做的九九乘法表
int sum = 0;//设置一个控制换行的初始值为0
System.out.println("九九乘法表");
for(int i=1;i<10;i++) {
for(int j=1;j<i+1;j++) {
//内外层循环联系起来,i值进入内层循环
sum += 1;//每次循环自增1
System.out.print(i+" * "+j+" = "+(i * j)+"| ");//在当行输出
if(sum == i) {
//当i值等于sum值时,即最大的数时,就换行
System.out.println();
sum = 0;//换行后,将sum重新归为0,接着下一次换行。
}
}
}
}
public static void test7() {
//书本上的案例--九九乘法表
System.out.println(" 九九乘法表");
System.out.print(" ");//每个前面空四格
for(int j=1;j<=9;j++) {
//打印行
System.out.print(" "+j);
}
System.out.println("\n-----------------------------------------");
for(int i=1;i<=9;i++) {
//i的范围[1-9]
System.out.print(i + " | ");
for(int j=1;j<=9;j++) {
//j的范围也是[1-9]
int result = i * j;
System.out.printf("%4d",result);//占位符,d表示整数,4代表长度,若是长度不足4,则用空格补齐。
}
System.out.println();//换行
}
System.out.print("-----------------------------------------");
System.out.println();
}
public static void test8() {
float sum = 0;
for(float i=0.01f;i<=1.0f;i=i+0.01f) {
sum += i;
}
System.out.println("求和:"+sum);
}
public static void test9() {
//最大公约数
Scanner input = new Scanner(System.in);//创建输入对象
System.out.print("请输入第一个整数:");
int number1 = input.nextInt();//获取键盘输入的第一个整数
System.out.print("请输入第二个整数:");
int number2 = input.nextInt();//获取键盘输入的第二个整数
int gcd = 1;
int k = 2;
while(k<=number1 && k<=number2) {
if(number1 % k == 0 && number2 % k == 0) {
gcd = k;
}
k++;//k值每次自增1
}
System.out.println(number1+"和"+number2+"的最大公约数是"+gcd);
}
public static void test10() {
//计算学费程序
double tuition = 10000;//初始化学费
int year = 1;//初始化年数
while(tuition < 20000) {
tuition = tuition * 1.07;//学费每年都在增加
year++;
}
System.out.printf("过"+year+"年学费将会变成%.2f",tuition);//格式化浮点数,保留两位小数
System.out.println();
}
public static void test11() {
//计算圆周率
final int number_of_trials = 10000000;
int numberOfHits = 0;
for(int i=0;i<number_of_trials;i++) {
double x = Math.random() * 2.0 - 1;//生成随机小数
double y = Math.random() * 2.0 - 1;
if(x * x + y * y <= 1) {
numberOfHits++;
}
double pi = 4.0 * numberOfHits / number_of_trials;//计算π,双精度浮点数
System.out.println("PI is "+pi);
}
}
}
运行结果,如下图:
关于代码的解释在文中的注释写了,不理解的朋友可以与我交流探讨。最后的这个计算圆周率是让我有点无语。CPU占用率直接飙升到90多。
最后,感谢大家前来观看鄙人的文章,文中或有诸多不妥之处,还望指出和海涵。
转载:https://blog.csdn.net/weixin_43408020/article/details/115274628
查看评论