如何循环文件中的问题?

时间:2016-10-18 02:24:04

标签: file loops import

如何让我的程序从word文档(学习指南)中提问,直到它们全部消失为止?我提供的程序问其中一个问题,但我需要能够问他们所有人,告诉他们什么时候他们得到了错误的答案,并从每次他们回答错误时从5扣除两个点扣除积分。 要清楚我的问题是如何让我的程序从文档中提取问题,直到通过使用循环没有留下任何问题,那么如何在每次错误时扣除积分。 < / p>

import java.util.Scanner;

public class HW2 { 
  public static void main(String[] args) {     
    Scanner input = new Scanner(System.in);
    HWData hd = new HWData();
  System.out.println(hd.getQuestion(0));
  System.out.println();
  System.out.println("1. " + hd.getAnswer1(0));
  System.out.println();
  System.out.println("2. " + hd.getAnswer2(0));
  System.out.println();
  System.out.println("3. " + hd.getAnswer3(0));
  System.out.println();
  System.out.println("4. " + hd.getAnswer4(0));

  int answer = input.nextInt();

  if (answer == hd.getCorrect(0))
  { System.out.println(" Great Job! You got the right answer!");}
  else
  { System.out.println(" You got the answer wrong, try again.");
    input.close();

  }

  }

}

1 个答案:

答案 0 :(得分:0)

答案取决于HWData的工作原理。没有看到,我们无法回答这个问题。看起来HWData实际上是从文档中提取问题的部分,但您发布的代码并不包含该内容。

看起来HWData允许您通过将数字传递给getQuestion()/ getAnswer()/ getCorrect()方法来检索不同的问题/答案。

如果幸运的话,它还提供了一种查找问题总数的方法。在这种情况下,您可以执行以下操作:

int currentScore = 5;

int numberOfQuestions = hd.getNumberOfQuestions();
for (int questionIndex=0; questionIndex<numberOfQuestions; ++questionIndex) {
    System.out.println(hd.getQuestion(questionIndex));
    System.out.println();
    System.out.println("1. " + hd.getAnswer1(questionIndex));
    System.out.println();
    System.out.println("2. " + hd.getAnswer2(questionIndex));
    System.out.println();
    System.out.println("3. " + hd.getAnswer3(questionIndex));
    System.out.println();
    System.out.println("4. " + hd.getAnswer4(questionIndex));

    int answer = input.nextInt();

    if (answer == hd.getCorrect(questionIndex)) {
        System.out.println(" Great Job! You got the right answer!");
    }
    else {
        System.out.println(" You got the answer wrong.");
        currentScore -= 2;
    }
}

input.close();
System.out.println("Final score: " + currentScore);