大家好:题目如下:编写程序使:产生10个随机数相加,加数是两个1到15 之间的整数。要求
显示出回答正确的答案个数。和测验时间(也就是完成这个加法测验的时间)。我的代码如下:
import java.util.*;
public class A6_51{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int dui=0;
int cuo=0;
for(int i=0;i<10;i++){
int number=(int)(Math.random()*15);
int number1=(int)(Math.random()*15);
System.out.println("请计算:"+number+"+"+number1+"=?");
System.out.println("请输入您的答案");
int answer=input.nextInt();
if(answer==(number+number1)){
dui=(i+1);
}else{
cuo=(10-dui);
}
}
System.out.println("您本轮答题总共回答正确"+dui+"题;"+"回答错误"+cuo+"题。");
}
}
目前我做到了显示正确或错误的答案数。但是怎么显示出做完这个时间耗时多少。这个问题
我苦思没结果。请大神帮忙看看,该怎么解决。如果我的代码还可以优化的额话也请指点一下。
谢谢
程序开始时计算一下当前时间,结束时在计算一下当前时间,利用前后时间差求
统计问答时间,可以修正代码如下:
public class A6_51 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int dui = 0;
int cuo = 0;
//开始时间
long start = System.currentTimeMillis();
for (int i = 0; i < 10; i++) {
int number = (int) (Math.random() * 15);
int number1 = (int) (Math.random() * 15);
System.out.println("请计算:" + number + "+" + number1 + "=?");
System.out.println("请输入您的答案");
int answer = input.nextInt();
if (answer == (number + number1)) {
dui = (i + 1);
} else {
cuo = (10 - dui);
}
}
//结束时间
long end = System.currentTimeMillis();
System.out.println("您本轮答题总共回答正确" + dui + "题;" + "回答错误" + cuo + "题。");
long totalTime = end-start;
System.out.println("回答耗时"+(totalTime/1000)+"秒");
}
}
首先,变量定义要有意义,编程语言是用英文的,所以通常命名也是有意义的英文单词并且体现变量的作为,你的变量dui,cuo定义不太好,既然为统计数量,可以修正为rightCount,wrongCount。总之,代码中出现中文拼音感觉很别扭。
开始定义个时间,结束定义个时间,相见就行了System.currentTimeMillis()获得的是从1970年到现在的毫秒数,相减也是个毫秒数
System.currentTimeMillis()用来获取当前的时间毫秒数的,工作开始时记录一下,结束时再记录一下。两者一减就可以了。