Java中的测验(平均猜测)

时间:2013-02-01 00:08:40

标签: java math

我正在编写一个Java测验游戏,我无法弄清楚如何找到用户的平均猜测数。这是简单代码中的游戏:

import java.util.Scanner;
import java.io.File;

public class JavaQuiz 
{
    public static void main(String[] args) throws Exception
    {

        Scanner input = new Scanner(System.in);

        File file = new File("questions.txt");

        Scanner scan = new Scanner(file);
        String line;
        double lineNum = 0;
        int skip = 0;
        int correct = 0;
        double guesses = 0;

        while(scan.hasNextLine()){
            // Counting of the line number
            lineNum = lineNum + 1;
            // Scanning the next line
            line = scan.nextLine();

            // Declaring the delimeter.
            String delimiter = "\\|";
            // Splitting the line
            String[] temp = line.split(delimiter);

            // Print out the questions
            System.out.println(temp[0]);

            // Wait for the user to input
            String keyboard = input.next();
            // Take the space off the answer
            String two = temp[1].replaceAll("\\s","");

            if(keyboard.equals("q")){
                skip = skip + 1;
            }

            else{

                while(!(keyboard.equals(two)) && !(keyboard.equals("q"))){


                    keyboard = input.nextLine();

                    if(keyboard.equals("q")){
                        skip = skip + 1;
                    } else {
                        System.out.println("Incorrect. Please Try Again");
                    }

                } 

                    if(keyboard.equals(two)){
                        correct = correct + 1;
                    }
            }

        }

        System.out.println("You got " + correct + " Questions Correct.");
        System.out.println("You skipped " + skip + " questions.");
        System.out.println("And for the questions you completed, you averaged " + avg + " guesses.");        
    }
}

我应该这样做吗?

double avg = guesses / lineNum;

无论如何我都会得到0的答案。

1 个答案:

答案 0 :(得分:1)

此行之后:String keyboard = input.next(); 你应该这样做:

if(!(keyboard==null))
    guesses++;

那时你是对的:avg=guesses/lineNum;

*提示guesses & lineNum应为int,其中guesses代表他回答的次数,lineNum代表行数。此处无需加倍< / p>

int占用的空间少于Ram上的双倍