java基础知识,遇到一个不明白的地方,谢谢指导!
各位大侠好,小弟虚心请教,看书看到循环了,都理解,因为本身有C基础。以下代码是我一边想,一边敲,敲不出来就看一下书,然后继续敲的,因为书上的代码对随机产生的题目答对多少道题目那块,统计累加貌似不起作用,然后我自己加的 if模块,如下:
if (number1-number2 == answer){
correctcount++;
}
然后在打印语句输出。这样妥当不? 我不懂的地方,声明 String output =""; 后面那句output是什么意思呀? 我看书好慢,而且是自己一个个例子去敲,自己去验证。是不是学习方法错了?谢谢大侠们的指导。我从不看API,英文看不会。
import java.util.*;
public class SubtrationQuizLoop {
public static void main(String[] args) {
final int NUMBER_QUESTIONS = 5;
int correctcount = 0;
int count = 0 ;
long startTime = System.currentTimeMillis();
String output = " ";
System.out.print("请输入一个数字:");
Scanner input = new Scanner(System.in);
while (count < NUMBER_QUESTIONS){
int number1 = (int)(Math.random() * 10);
int number2 = (int)(Math.random() * 10);
if (number1 < number2){
int temp = number1;
number1 = number2;
number2 = temp;
}
System.out.print("\n题目"+number1+"-"+number2+"="+"?");
int answer = input.nextInt();
if(answer == (number1 - number2)){
System.out.print("答案正确");
}else{
System.out.print("你回答错误!"+number1+"-"+number2+"的结果是:"+" "+(number1-number2));
}
count++;
if (number1-number2 == answer){
correctcount++;
}
output += "\n"+number1+"-"+number2+"="+answer+((number1 - number2 ==answer)? "正确":"错误");
}
long endTime = System.currentTimeMillis();
long testTime = endTime - startTime;
System.out.print("\n答对的是:"+correctcount+" "+"条"+"\n共用时"+testTime / 1000 +"秒"+output);
}
}
------解决方案-------------------- String output ="";
这是声明output为字符串 并 赋值为空。
output += "\n"+number1+"-"+number2+"="+answer+((number1 - number2 ==answer)? "正确":"错误");
这个是一个三目运算符 至于output += ...就是跟C里面的一样撒 不过我觉得这样写不好因为String不是动态添加 这代码里面的方式会分配很多String对象 空间浪费。
------解决方案--------------------这样学习方式很好,学程序就是要敲代码,只有不停地敲才会发现自己所不知道的错误,对每个点的理解才是最深刻的,等你敲了一定的积累之后,学后面的内容时就有种理所当然的感觉,绝对比那些一开始只看而不敲代码的快。
你的问题没错,必须要加上一个correctCount++表达,不然如何实现.不过你不必再写一个if语句,直接加在原来的if语句判断里就可以了。
output是每次循环都把结果加到output这个字符串里,最后输出来。
------解决方案--------------------别的我不说先了,LZ,我建议 你和视频一起学比较快点,javaSE是基础,都要学,要踏实的学···
多敲代码是对,如果单纯看书很难入门的,java很多都和C不一样的。
------解决方案--------------------你看一下吧!!
import java.util.*;
public class SubtrationQuizLoop
{
public static void main(String[] args) {
final int NUMBER_QUESTIONS = 5;//所做题的数目
int correctcount = 0;//统计正确的数目
int count = 0 ;
long startTime = System.currentTimeMillis();//用于记录开始的时间
String output = "";//定义了一个String 类型的变量output,里面没有存放任何数据
System.out.print("请输入一个数字:");//输入一个答案
Scanner input = new Scanner(System.in);
while (count < NUMBER_QUESTIONS){
int number1 = (int)(Math.random() * 10);//随机产生两个数进行运算