package mathquiz;
import java.util.Random;
import java.util.Scanner;
public class mathquiz {
public static void main(String[] args) {
int score=0;
int rounds=3;
mathquiz mp=new mathquiz();
Scanner s=new Scanner(System.in);
boolean quit=false;
while(!quit){
double cAnswer=mp.generateQuestion();
while(!quit && !s.hasNextDouble()){
String str=s.next();
if(str.equals("x")){
quit=true;
}
else
System.out.println("input again: ");
}
if(!quit){
double uAnswer=s.nextDouble();
score+=mp.checkAnswer(uAnswer, cAnswer);
}
}
//add your code here
System.out.println("You got: "+score);
}
public double generateQuestion(){
double cAnswer=0;
Random ran = new Random();
int a=ran.nextInt(100)+2;
int b=ran.nextInt(100)+2;
int op=ran.nextInt(4);
String opStr="";
switch(op){
case 0 :
cAnswer=a+b;
opStr="+";
break;
case 1:
cAnswer=a-b;
opStr="-";
break;
case 2:
cAnswer=a*b;
opStr="*";
break;
default:
cAnswer=a/b;
opStr="/";
break;
}
System.out.println(a +" " + opStr + " " +b + "=");
return cAnswer;
}
public int generateNumber() {
return 0;
}
public int checkAnswer(double uAnswer, double cAnswer){
int Score=0;
if(Math.abs(cAnswer-uAnswer)<=0.01){
Score=10;
}
else{
Score=-10;
}
return Score;
}
}
所需要的新知识:math.abs() 表示数的绝对值
switch(变量)
case后的是代表变量中的其中一个
hasNextDouble()判断是否有输入流输入,如果有,且是double型,则进入while循环
toLowerCase()表示转大写为小写