Создание цикла do-while, чтобы предложить пользователю ввести другой ISBN

Итак, в качестве проекта для моего класса мне необходимо создать программу, в которой пользователь вводит первые n цифр номера ISBN и отвечает десятой цифрой. Я бесконечно искал что-то, что позволит моей программе спрашивать пользователя, хотят ли они снова запустить программу, а затем запускать программу снова, если они вводят «да» или «Y». То, что я нашел, не сработало, обычно это просто заканчивается циклом «Хотите ли вы ввести другой ISBN», фактически не заставляя их вводить ISBN. Мой код ниже, спасибо, ребята, за любую помощь!

import java.util.Scanner;
public class ISBNCheckSum {

    public static void main(String[] args) 
    {
        Scanner keyboard = new Scanner(System. in );
        // limiter 
        int isbn10 = 9;
        // to take in response of user
        long userResponse;
        // accumulator 
        int ISBnNum = 1;
        //current count of ISBN
        long isbnCount = 0;
        // This is used to multiply the userresponse by 1,2,3... up to 9
        int multiplier = 1;

        while (ISBnNum <= isbn10) 
        {
            System.out.println("Please ISBN number  " + ISBnNum);
            //to enter the User response
            userResponse = keyboard.nextInt();
            //Multiply the user response by multiplier variable
            userResponse = userResponse * multiplier;
            //add to accumulator 
            ISBnNum = ISBnNum + 1;
            // put user into final answer
            isbnCount = isbnCount + userResponse;
            // increase multiplier
            multiplier = multiplier + 1;
        }

        long checkSum;
        checkSum = isbnCount % 11;
        System.out.println(checkSum);
    }
}
}

person Tokioi    schedule 18.02.2015    source источник
comment
Вы бы выиграли от использования правильного отступа. На этот раз я сделал это за вас, но, пожалуйста, найдите время, чтобы правильно отформатировать код в следующий раз. Похоже, у вас есть лишняя закрывающая скобка. Кроме того, не похоже, что вы на самом деле пробовали то, что описываете. Я думаю, что вы ищете цикл while, который повторяется, пока некоторый пользовательский ввод Y.   -  person tnw    schedule 18.02.2015
comment
Спасибо за это, я новичок в Java и программировании в целом. Я как бы понял, что это то, что я искал, но я еще не нашел, как это реализовать. Вот почему я пришел сюда.   -  person Tokioi    schedule 18.02.2015
comment
Кроме того, соблюдайте соглашения по коду Java: ISBnNum — неподходящее имя для переменной, так как оно начинается с заглавной I. Взгляните на этот google-styleguide.googlecode.com/svn/trunk/javaguide.html   -  person antonio    schedule 18.02.2015
comment
@Tokioi Взгляните сюда: programmingsimplified.com/java/tutorial/java-while -петля   -  person tnw    schedule 18.02.2015
comment
Да, это было то, что я хотел исправить, но когда я начал работать над этой частью, я как бы забыл. Я исправил это в своем собственном коде.   -  person Tokioi    schedule 18.02.2015


Ответы (1)


Попробуйте что-то вроде этого (я изменил имя переменной iSBnNum):

    boolean askAgain = true;
    while (askAgain) {
        iSBnNum = 1;
        while (iSBnNum <= isbn10) {
            System.out.println("Please ISBN number  " + iSBnNum);
            // to enter the User response
            userResponse = keyboard.nextInt();
            // Multiply the user response by multiplier variable
            userResponse = userResponse * multiplier;
            // add to accumulator
            iSBnNum = iSBnNum + 1;
            // put user into final answer
            isbnCount = isbnCount + userResponse;
            // increase multiplier
            multiplier = multiplier + 1;
        }

        System.out.println("Ask again (Y/N)?");
        String answer = keyboard.next();

        askAgain = answer.equalsIgnoreCase("Y");
    }
person antonio    schedule 18.02.2015
comment
Большое спасибо Антонио. Это заставило его работать. Я также хотел бы поблагодарить всех за помощь в улучшении внешнего вида моего кода. - person Tokioi; 18.02.2015