2015-11-29 2 views
0

Я работаю над написанием программы, которая следует этим инструкциям:Умножение Tutor Java Программа

Ваша маленькая сестра просит вас помочь ей с умножением, и вы решили написать программу Java, которая проверяет свои навыки. Программа позволит ей ввести начальный номер, например 5. Он будет генерировать десять задач умножения в диапазоне от 5 × 1 до 5 × 10. Для каждой проблемы ей будет предложено ввести правильный ответ. Программа должна проверить ее ответ и не должна позволять ей перейти к следующему вопросу, пока правильный ответ не будет дан текущему вопросу.

После тестирования десяти проблем с умножением ваша программа должна спросить, хочет ли она попробовать другой стартовый номер. Если «да», ваша программа должна генерировать еще одну десятую проблему умножения. Эта процедура должна повторяться до тех пор, пока она не укажет «нет».

У меня есть правильный код, чтобы запросить часть умножения, но я не могу понять, как заставить программу спросить, хочет ли пользователь продолжить.

Следующий код программы запуска через один раз:

package hw5; 
    import java.util.Scanner; 
    public class HW5 { 
     public static void main(String[] args) { 
      Scanner input = new Scanner(System.in); 
      System.out.print("Enter number you would like to attempt: "); 
      int start = input.nextInt(); 
      int mult; 
      for (mult = 1; mult <= 10; mult++) { 
       int num = start * mult; 
       System.out.print(start + " x " + mult + " = "); 
       int ans = input.nextInt(); 
       while (ans != num) { 
        System.out.print("Wrong answer, try again: "); 
        int ans2 = input.nextInt(); 
        if (ans2 == num) { 
         break; 
        } 
       } 

       //System.out.print("Would you like to do another problem? "); 

      } 
     } 
    } 

Когда я раскомментировать из строки 21 программа возвращается:

Введите номер, который вы хотели бы, чтобы попытаться: 1

1 x 1 = 1

Вы хотите сделать еще одну проблему? 1 x 2 = 2

Вы хотите сделать еще одну проблему? 1 х 3 =

и т.д ...

Если взять код из строки 21 и поставить его вне для цикла программа работает для цикла один раз, а затем прыгает прямо на вопрос.

Как я могу это исправить и успешно выполнить инструкции?

+0

«..put его вне для цикла программа работает для цикла один раз, а затем прыгает прямо на вопрос.» Разве это не совсем то, что должно случиться? Единственной недостающей частью является то, что вся программа должна быть повторена. И нужно сделать новый ввод и оценить – zapl

+0

@zapl Я так странно назвал. Он выводит: «1 x 1», затем вы отвечаете, затем заканчивает цикл. –

ответ

1

Вот как я это сделать:

package hw5; 
    import java.util.Scanner; 
    public class HW5 { 
    public static void main(String[] args) 
    { 
     boolean wantsToContinue = true; 
     while(wantsToContinue) 
     { 
      wantsToContinue = mathProblem(); 
     } 
    } 

    public static boolean mathProblem() 
    { 
     Scanner input = new Scanner(System.in); 
     System.out.print("Enter number you would like to attempt: "); 
     int start = input.nextInt(); 
     int mult; 
     for (mult = 1; mult <= 10; mult++) { 
      int num = start * mult; 
      System.out.print(start + " x " + mult + " = "); 
      int ans = input.nextInt(); 
      while (ans != num) { 
       System.out.print("Wrong answer, try again: "); 
       int ans2 = input.nextInt(); 
       if (ans2 == num) { 
        break; 
       } 
      } 

      //System.out.print("Would you like to do another problem? "); 

     } 

     boolean wantsToContinue; 
     //Ask if the user would like to do another problem here, set "wantsToContinue" accordingly 
     return wantsToContinue; 
    } 
} 
Смежные вопросы