我正在尝试运行这个程序。用户输入数值后,程序将输出数值。我的问题是该程序应该要求用户输入任何数字来再次运行该程序或输入 -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/