我如何循环我的整个程序? [英] How do i loop my whole program?

查看:71
本文介绍了我如何循环我的整个程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能够一遍又一遍地循环程序,这取决于用户的输入.您能否看下面我的代码,并帮助我了解如何完成此操作...

I want to be able to loop my program over and over again, depending on the user input. Could you please look at my code below and help me to understand how this can be done...

import java.util.*;

public class Lab4 {
    public static void main(String[] args){
        System.out.println("Body Fat Calculator");

        double A1,A2,A3,A4,A5,B; //female
        double a1,a2,b; //male
        double bodyWeight,wristMeasurement,waistMeasurement,hipMeasurement,forearmMeasurement; //both
        double bodyFat,bodyFatpercent; //both

        Scanner body = new Scanner (System.in);

        System.out.println ("Enter Gender (m/f): ");
        char gender = body.nextLine().charAt(0);

        while ((gender != 'm') && (gender != 'f')) {
            System.out.println ("Unknown gender, Enter gender again (m/f); ");
            gender = body.nextLine ().charAt(0);
        }

        do {
            if (gender == 'm') {
                System.out.println ("Enter Your Body Weight: ");
                bodyWeight = body.nextInt ();

                System.out.println ("Enter Your Waist Measurement: ");
                waistMeasurement = body.nextDouble ();

                a1 = (bodyWeight * 1.082) + 94.42; //male formula
                a2 = waistMeasurement * 4.15;
                b = a1 - a2;

                bodyFat = bodyWeight - b;
                bodyFatpercent = bodyFat * 100 / bodyWeight;

                System.out.printf ("%s %.2f%%%n", "Your Bodyfat Percentage is: ", bodyFatpercent);
            }

            else {

                System.out.println ("Enter Your Body Weight: ");
                bodyWeight = body.nextInt ();

                System.out.println ("Enter Your Wrist Measurement: ");
                wristMeasurement = body.nextDouble ();

                System.out.println ("Enter Your Waist Measurement: ");
                waistMeasurement = body.nextDouble ();

                System.out.println ("Enter Your Hip Measurement: ");
                hipMeasurement = body.nextDouble ();

                System.out.println ("Forearm Your Measurement: ");
                forearmMeasurement = body.nextDouble ();

                A1 = (bodyWeight * 0.732) + 8.987; // female formula
                A2 = wristMeasurement / 3.14; //at fullest point
                A3 = waistMeasurement * 0.157; //at navel
                A4 = hipMeasurement * 0.249; //at fullest point
                A5 = forearmMeasurement * 0.434; //at fullest point
                B = A1 + A2 - A3 - A4 + A5;

                bodyFat = bodyWeight - B;
                bodyFatpercent = bodyFat * 100 / bodyWeight;
                System.out.printf ("%s %.2f%%%n", "Your Bodyfat Percentage is: ", bodyFatpercent);
            }
        }
        while (true){
            System.out.println ("Would You Like to Use the Calculator Again (y/n)? ");
            char answer = body.nextLine();
            // should loop here to run the program again
        }      
    }

推荐答案

通过将代码移到一个单独的方法中,然后一遍又一遍地调用该方法,可以相对轻松地完成此操作.

It can be done relatively easily by moving your code out into a separate method, and then calling that method over and over again...

public void runMyCode(){
  // Put all your code in here
  }

public static void main(String[] args){
  boolean runAgain = true; // start off being true, so it will enter the loop for the first time

  while(runAgain){
    runMyCode(); // runs your code

    // when your code has been run once, it will come back here and ask this question
    System.out.println ("Would You Like to Use the Calculator Again (y/n)? ");
    char answer = body.nextLine();

    // we change the value of the boolean so that the while loop will repeat again only if the user enters 'y'
    if (answer == 'y'){
      runAgain = true;
      }
    else {
      runAgain = false;
      }
    }
  }

main()方法仅控制程序的重复.所有其他问题和处理都在 runMyCode()方法中进行.

The main() method just controls the repeating of your program. All the other questions and processing occurs in the runMyCode() method.

这篇关于我如何循环我的整个程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆