循环和重新分配值

时间:2011-02-27 00:43:21

标签: java loops

好的,如果用户输入某个密钥,我无法弄清楚如何让程序循环回到上一节。例如,如果他们在任何时候点击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 个答案:

答案 0 :(得分:2)

您可以将登录分成较小的功能,而不是在一个巨大的功能中完成所有操作。这是大纲

玷污函数获取重量输入:double getWeight()

defile函数获取高度输入: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

结束主要()