java - 要求用户使用简单的 while 循环再次运行程序

标签 java loops while-loop

我正在尝试运行这个程序。用户输入数值后,程序将输出数值。我的问题是该程序应该要求用户输入任何数字来再次运行该程序或输入 -1 来退出,但我不知道在代码中放置 while 循环的位置。我需要知道 while 循环的确切位置。应该在java代码的开头还是结尾。代码如下。

import java.util.Scanner;
public class Program4 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System. in );

        //Declare variables
        double numb;
        double absolute, meanNum = 0, medianNum = 0;
        double num1, num2, num3;
        double m;
        double me;
        double ab;

        System.out.println("Enter a number"); //prompting the user to enter information
        numb = input.nextDouble();

        while (numb != -1) {

            ab = absolute(numb);
            System.out.printf("The absolute number is %f\n", ab); //prompting the user to enter information

            System.out.println("Enter three numbers"); //prompting the user to enter information
            num1 = input.nextDouble();
            num2 = input.nextDouble();
            num3 = input.nextDouble();

            m = meanNum(num1, num2, num3); // Calling the method Mean Number
            System.out.printf("The Mean Number is: %f\n", m);

            me = medianNum(num1, num2, num3); // Calling the method Median Number
            System.out.printf("The median Number is %f\n", me);
        }
    }
    //// Creating another method for finding Mean Number
    public static double meanNum(double num1, double num2, double num3) {
        double meanNumb = 0;
        meanNumb = (num1 + num2 + num3) / 3; // Calculating the mean number by summing the numbers entered divided by three

        return (meanNumb);
    }
    // Creating another method for finding Median Number
    public static double medianNum(double num1, double num2, double num3) {
        //Using the IF Statement to find the median value of three numbers entered
        double medianNum = 0;
        if (num1 < (num3) && (num1 > num2))
            medianNum = num1;
        if ((num2 < num1) && (num2 > num3))
            medianNum = num2;
        if ((num3 < num2) && (num3 > num1))
            medianNum = num3;
        if ((num1 < num2) && (num1 > num3))
            medianNum = num1;
        if ((num2 < num3) && (num2 > num1))
            medianNum = num2;
        if ((num3 < num1) && (num3 > num2))
            medianNum = num3;

        return (medianNum);
    }
    // Creating a separated method for finding the absolute value of a number
    public static double absolute(double numb) {
        double ab = 0;
        if (numb < 0) {
            ab = numb * -1;
        } else {
            ab = numb;


        }

        return ab;
    }
}

最佳答案

do-while 循环就是您正在寻找的。它会是这样的:

do {
// whatever
} while(numb != 1);

do-while 循环确保循环至少运行一次,然后根据您的 while 语句,它们将继续运行或退出。因此,您可以将以下几行放在 do-while 循环中:

System.out.println("Enter a number"); //prompting the user to enter information
numb = input.nextDouble();

在此之后,只需包含 while 循环中已有的所有内容即可。每次循环运行时,它都会要求用户输入一个数字,根据他们输入的数字,您的程序将继续运行或退出。

您可以在此处查找 Oracle 的教程:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

更新:

运行此程序时您有可能会遇到一些异常。我建议您执行以下操作以避免出现任何问题:

do {
     System.out.print("Enter a number (Enter -1 to exit): "); //prompting the user to enter information
     numb = input.nextDouble();


     if (numb != -1) {
         ab = absolute(numb);
         System.out.printf("The absolute number is %f\n", ab); //prompting the user to enter information

         System.out.println("Enter three numbers"); //prompting the user to enter information
         num1 = input.nextDouble();
         num2 = input.nextDouble();
         num3 = input.nextDouble();

         m = meanNum(num1, num2, num3); // Calling the method Mean Number
         System.out.printf("The Mean Number is: %f\n", m);

         me = medianNum(num1, num2, num3); // Calling the method Median Number
         System.out.printf("The median Number is %f\n", me);
     }
} while (numb != -1);

if 语句 确保代码的其余部分仅在用户输入 -1 以外的数字时运行。

关于java - 要求用户使用简单的 while 循环再次运行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22550223/

相关文章:

java - 多线程和多个 BufferedReader

java - Spring MVC 不会从 html 表单保存到数据库

javascript - 将数字添加到对象返回 NaN

javascript - 我怎样才能在jquery中循环?

PHP 行为怪异,混淆了 HTML 标记

java - 为什么不重新评估 while 条件?

java - 如何保持 for 循环计数器为 0;大数; ETC

java - LocationListener、LocationRequest、LocationServices 在实现 Google Maps API 以在 Android Studio 中查找附近地点时导入无效

c - 在执行多个条件时,C 中的 do while 循环有问题

java - 索引像素来为图片的某些位置着色