Как создать счетчик в программе Dr Java - PullRequest
1 голос
/ 12 октября 2009
/*This is a quiz program that will ask the user 10 questions. the user will answer
 * these questions and will be scored out of 10.*/

class Quiz {
    public static void main(String args[]) {
        // Instructions
        System.out.println("instructions");
        System.out.println(" ");
        System.out
                .println("1. You wll be asked ten questions through out the quiz.");
        System.out
                .println("2. The first question will appear, you will have to answer that question for the next question to appear.");
        System.out
                .println("3. When you answer the last question you will be told your score.");
        System.out.println(" ");

        System.out.println("welcome to the basketball quiz.");

        // question 1
        System.out.println(" ");
        System.out.println("Question 1. ");
        System.out.println("How tall is a basketball hoop? ");
        System.out.println("Type in Answer here:");
        String Question1 = In.getString();
        if (Question1.equalsIgnoreCase("10 Feet")) {
            System.out.println("Correct!");
        } else {
            System.out.println("you got this questions wrong");
        }

        // question 2
        System.out.println(" ");
        System.out.println("Question 2. ");
        System.out.println("Who invented basketball? ");
        System.out.println("Type in Answer here:");
        String Question2 = In.getString();
        if (Question2.equalsIgnoreCase("James Naismith ")) {
            System.out.println("Correct!");
        } else {
            System.out.println("you got this questions wrong");
        }
    }
}

Это моя программа, которую я пишу. Я хочу создать счетчик, который будет вести счет каждого вопроса, на который дан правильный ответ, и затем отображать его пользователю после того, как вопросы будут закончены. Я пытался использовать это:

int score=0;

score=score+1;

Это не работает для 2-го вопроса, но работает для 3-го ... это дает мне ошибку. Есть ли другой способ сделать это или я делаю что-то не так?

Ответы [ 3 ]

2 голосов
/ 12 октября 2009

Похоже, вы на правильном пути. Вам нужно объявить переменную socre в начале программы.

int score = 0;

Тогда в каждом вопросе, где вы печатаете «правильно», вы можете увеличивать счет следующим образом:

 score++;

В конце программы после последнего вопроса вы можете распечатать счет.

Может быть, вы должны опубликовать ошибку, которую вы получили, когда пытались это сделать.

UPDATE: Синтаксис: оценка ++ НЕ оценка = ++. То есть выньте знак =.

0 голосов
/ 22 ноября 2011

Ваша проблема возможна, потому что у вас есть символ пробела после имени "Джеймс Нейсмит" в сравнении для их данного ответа. Чтобы оценить его как истинное, пользователь должен ответить точной строкой «Джеймс Нейсмит» вместо «Джеймс Нейсмит»

Редактировать: Неважно, это не должно вызывать ошибку, но это то, что заставит вас обратить внимание, потому что это может повлиять на результат программы.

0 голосов
/ 12 октября 2009

То, что вы сделали, правильно. Обратите внимание на комментарий к вашему сообщению; вам нужны точки с запятой в конце вашего решения. Кроме того, в соответствии с спецификацией языка Java лучше называть переменную строчными буквами:

int score = 0;

// question code

score += 1;

or 

score = score + 1;

or 

score++;

Вам необходимо разместить объявление переменной (int score = 0;) вне любых циклов (ваших циклов if / else). Лучше всего поместить его в первую строку основного метода.

...