Зацикливание и переназначение значений - PullRequest
0 голосов
/ 27 февраля 2011

Хорошо, у меня возникли проблемы при попытке выяснить, как заставить мою программу вернуться к предыдущему разделу, если пользователь вводит определенный ключ. Например, если они в любой момент нажмут w, программе необходимо перейти в раздел веса, чтобы они могли ввести новый вес и то же самое для h для роста. Если бы вы, ребята, могли бы дать мне несколько предложений, я был бы признателен. Спасибо, ребята:)

package Assignments;

import java.util. *; публичное занятие 3 {

public static void main(String[] args) {

    //Scanner
    Scanner stdIn = new Scanner(System.in);

    //Variables
    final double METERS_TO_CM = 100;   // The constant to convert meters to centimeters
    final double BSA_CONSTANT = 3600;  // The constant to divide by for bsa
    double bmi;                        // Body Mass Index
    double weight;                     // Weight in kilograms
    double height;                     // Height in meters
    String classification;             // Classifies the user into BMI categories 
    double bsa;                        // Body surface area



    System.out.print("Welcome to the BMI and BSA Calculator to begin enter weight in kilograms.");
    weight = stdIn.nextDouble();
    System.out.print("Enter height in meters: ");
    height = stdIn.nextDouble();
    bmi = weight/(height*height);
    bsa = Math.sqrt(((height*METERS_TO_CM)*weight)/BSA_CONSTANT);


        if (bmi < 18.5)
        {
            classification = "Underweight";
        }
        else if (bmi < 25)
        {
            classification = "Normal";
        }
        else if (bmi < 30)
        {
            classification = "Overweight";
        }
        else
        {
            classification = "Obese";}


            System.out.println("Choose Options below to set height and weight");
            System.out.println("Your classification is: " + classification);
            System.out.println("(H)eight: " + height + " meters");
            System.out.println("(W)eight: " + weight + " kilograms");
            System.out.printf("BMI: %.1f\n", bmi);
            System.out.printf("BSA: %.2f\n", bsa);
            System.out.println("(Q)uit");

            String response = stdIn.next();

            switch (response.charAt(0)) {
            case 'w': response = "Enter new weight: ";
            weight = stdIn.nextDouble();
            System.out.println("Choose Options below to set height and weight");
            System.out.println("Your classification is: " + classification);
            System.out.println("(H)eight: " + height + " meters");
            System.out.println("(W)eight: " + weight + " kilograms");
            System.out.printf("BMI: %.1f\n", bmi);
            System.out.printf("BSA: %.2f\n", bsa);
            System.out.println("(Q)uit"); break;

            case 'h': response = "Enter new height";
            height = stdIn.nextDouble();
            System.out.println("Choose Options below to set height and weight");
            System.out.println("Your classification is: " + classification);
            System.out.println("(H)eight: " + height + " meters");
            System.out.println("(W)eight: " + weight + " kilograms");
            System.out.printf("BMI: %.1f\n", bmi);
            System.out.printf("BSA: %.2f\n", bsa);
            System.out.println("(Q)uit"); break;

            case 'q': System.exit(0);

            default: 
                System.out.println (response + "Is not a valid option please try again");

            }   


        }









}

1 Ответ

2 голосов
/ 27 февраля 2011

Вместо того, чтобы делать все это в одной гигантской функции, вы можете разделить вход в систему на более мелкие функции.Вот схема функции

defile для получения веса ввода: double getWeight ()

функция дефиле для получения высоты ввода: double getHeight ()

определяет функцию для выполнения математических операций.

определить функцию для отображения результата.

main()
  getWeight()
  getHeight()
  doMath()
  showResult()

  Loop
    show options (H/W/Q)
    switch
      case H:
         getHeight()
         doMath()
         showResult()
      case W
         getWeight()
         doMath()
         showResult()
      case Q
         Exit program
     end switch
   end Loop

End main ()

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