2014-01-18 4 views
0

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

import java.util.Scanner; 

public class add { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     int num1 = (int) (Math.random() * 10); 
     int num2 = (int) (Math.random() * 10); 
     int wrong = 0; 

     System.out.println("What is " + num1 + "+" + num2 + "=" + "?"); 
     int answer = input.nextInt(); 

     while (num1 + num2 != answer) { 
      System.out.println("Wrong answer, Try again . " + 
        "What is " + num1 + "+" + num2 + "? "); 
      answer = input.nextInt(); 
      System.out.println("The number of attemt is " + wrong); 
      ++wrong; 
     } 
     System.out.println("You got it correct !"); 
    } 
} 
+1

Отступ кода. – tbodt

+0

'System.out.println (« Число attemt равно »+ ++ неверно);' – MariuszS

+0

Применить приведенные ниже операторы System.out.println («Число attemt равно» + неверно); ++ неправильный; –

ответ

0

Просто измените

wrong = 0 

к

wrong = 1 

неправильно следует переименовать в numberOfAttempts.

0

Initialize wrong к 1 вместо 0.

int wrong = 1; 

Более подходящее имя для переменной будет attempt, если вы берете этот подход.

+0

Я инициализировал int wrong = 1; Однако; когда я вношу неправильный ответ, я не получаю вывод «число попыток 1» – user3196297

+0

@ user3196297, это потому, что вы печатаете это только после того, как прочитаете новый ответ. – Henry

2

Ошибки в увеличивающемся число пользователь получил неверный ПОСЛЕ печати «Вы получили х неправильно»

1

Просто поместите ++wrong выше System.out.println("The number of attemt is " + wrong);

while (num1 + num2 != answer) { 
      System.out.println("Wrong answer, Try again . " + 
        "What is " + num1 + "+" + num2 + "? "); 
      answer = input.nextInt(); 
      ++wrong; 
      System.out.println("The number of attemt is " + wrong); 

     } 
+0

Я ввел код так же, как и вы. когда я вхожу в неправильный ответ, я не получаю вывод «число попыток - 1» - – user3196297

+0

@ user3196297 Что вы получаете? – laaposto

+0

Я не получил вывод, чтобы быть «Число попыток равно 1», так как я не поставил ++ неправильно и System.out.println («Число attemt равно» + неверно); сразу после утверждения while. большое спасибо – user3196297

0

Вы должны увеличивать неправильно, прежде чем отобразить его:

import java.util.Scanner; 
public class Add { 
    public static void main(String[] args){ 
     Scanner input = new Scanner (System.in); 

     int num1 = (int)(Math.random() * 10); 
     int num2 = (int)(Math.random() * 10); 
     int wrong = 0 ; 

     System.out.println("What is " + num1 + "+" + num2 + "=" + "?"); 
     int answer = input.nextInt(); 

     while (num1 + num2 != answer){ 
      wrong++ ; 
      System.out.println("Wrong answer, Try again . What is " + num1 +"+"+ num2 + "? "); 
      answer = input.nextInt(); 
      System.out.println("The number of attempt is " + wrong); 

     } 
     System.out.println("You got it correct !"); 
    } 
} 
Смежные вопросы