2015-12-04 4 views
1

Я новый студент Java (самостоятельно учился у себя дома), и я сделал этот средний калькулятор, который отлично работает, но я хотел добавить условие, которое мешает пользователю вводить число, большее 100, потому что оценки обычно заканчиваются на уровне 100, я немного борюсь с тем, что это правильный способ сделать это. Вот мой код:Простой Java-калькулятор

import java.util.Scanner; 

class books{ 
    public static void main(String args[]){ 
     Scanner userInput = new Scanner(System.in); 
     int total = 0; 
     int grade = 0; 
     int average; 
     int counter = 0; 
     System.out.println("Please enter all your grades:"); 
     while(counter < 12){ 
      grade = userInput.nextInt(); 
      total = total + grade; 
      counter++; 
      if(grade > 100){ 
       System.out.println("Please enter a valid grade"); 

      } 
     } 
     average = total/12; 
     System.out.println("You average is " + average); 
    } 
} 

Спасибо.

ответ

1

Перед использованием введенного grade значения, вы должны проверить его, и если это не действует, чтобы продолжить цикл:

while(counter < 12){ 
    grade = userInput.nextInt(); 
    if (grade > 100) { 
     System.out.println("Please enter a valid grade"); 
    } else { 
     total = total + grade; 
     counter++; 
    } 
} 

Кроме того, при расчете среднего нескольких значений, это не так хорошо Идея делать целочисленное деление, потому что вы можете получить неправильные результаты. Лучше делать:

double average = 0d; 
... 
average = total/12.0; 
+0

Спасибо! что я искал, ключевое слово «продолжить», я просто хотел, чтобы он пропустил неправильное введенное значение и не считал его средним ... – davidgpilot

+0

Добро пожаловать. –

+1

Обратите внимание, что поскольку вычисление находится в блоке 'else', вам действительно не нужна команда' continue'. –

0

Решение:

import java.util.Scanner; 

class books{ 
    public static void main(String args[]){ 
     Scanner userInput = new Scanner(System.in); 
     int total = 0; 
     int grade = 0; 
     int average; 
     int counter = 0; 
     System.out.println("Please enter all your grades:"); 
     while(counter < 12){ 
      grade = userInput.nextInt(); 
      if(grade > 100 || grade < 0){ 
       System.out.println("Please enter a valid grade again!"); 
      }else{ 
       total = total + grade; 
       counter++; 
      } 
     } 
     average = total/12; 
     System.out.println("You average is " + average); 
    } 
} 

Заслуга Kocko;)

Смежные вопросы