2015-08-26 2 views
0

Я получил мой цикл для работы и выхода, когда введено значение «999».Программа выходит в неподходящее время

Я не уверен, что делать дальше, поскольку моя программа не функционирует точно так, как я ее хочу.

В настоящее время цикл завершается после того, как были выполнены значения num1 '' num2 'и' num3 '. Я хочу, чтобы программа выходила, как только вводится значение «999»; а не когда num1, 2 и 3 все введены.

Вот мой код:

import java.util.Scanner; 

public class SumAverage { 
    static Scanner keyboard = new Scanner(System.in); 

    public static void main(String[] args) { 
     System.out.printf("Please Enter the first number%n"); 
     float num1 = keyboard.nextFloat(); 

     System.out.printf("Please enter the second number%n"); 
     float num2 = keyboard.nextFloat(); 

     System.out.printf("Please enter the third number%n"); 
     float num3 = keyboard.nextFloat(); 

     float sum = (num1 + num2 + num3);    //calculates sum 
     float average = (num1 + num2 + num3)/3;  //calculates average 

     for(int x = 0; x < 1; x++) { 
      if (num1 == 999 || num2 == 999 || num3 == 999) { 
       break; 
      } 
      System.out.printf("Sum: %.0f %nAverage: %.2f", sum, average); 
     } 
    } 
} 
+0

Я только что проверил ваш код и вычислил среднее значение без проблем. –

+0

'if (num1! = 999) {' ... код, который вы хотите запустить только в том случае, если num1 не находится здесь 999 ... '}' – immibis

+0

Прочтите приведенные ниже ответы. –

ответ

2

Если вы действительно хотите, чтобы программа закончится, как только значение 999 вводится, вы можете изменить способ main() к этому:

public static void main(String[] args) { 
    System.out.printf("Please Enter the first number%n"); 
    float num1 = keyboard.nextFloat(); 
    if (num1 == 999) { 
     System.exit(0); 
    } 

    System.out.printf("Please enter the second number%n"); 
    float num2 = keyboard.nextFloat(); 
    if (num2 == 999) { 
     System.exit(0); 
    } 

    System.out.printf("Please enter the third number%n"); 
    float num3 = keyboard.nextFloat(); 
    if (num3 == 999) { 
     System.exit(0); 
    } 

    float sum = (num1 + num2 + num3);    // calculates sum 
    float average = (num1 + num2 + num3)/3;  // calculates average 

    System.out.printf("Sum: %.0f %nAverage: %.2f", sum, average); 
} 
0

Ваш для цикла цикл только один раз, поэтому я думаю, что вам нужно будет сделать некоторые изменения кода

public class Calculator{ 
    public static void main(String[] args){ 
     Scanner keyboard = new Scanner(System.in); 
     float num1; 
     float num2; 
     float num3; 
     while (true){ //This will run forever until we break the loop 
      num1 = keyboard.nextFloat(); 
      if (num1 == 999){ 
       break; 
      } 
      num2 = keyboard.nextFloat(); 
      if (num2 == 999){ 
       break; 
      } 
      num3 = keyboard.nextFloat(); 
      if (num3 == 999){ 
       break; 
      } 
      System.out.println("The average is: " + (num1 +num2+num3)/3); 
     } 
    } 
} 
1

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

Я рекомендую использовать «System.exit» с условными выражениями, чтобы проверить, имеет ли значение значение 999. Попробуйте оттуда посмотреть, что вы можете сделать.

Вот несколько documentation относительно «System.exit», чтобы помочь вам лучше понять, как это работает.

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