我正在尝试运行此程序。用户输入值后,程序将输出值。我的问题是,程序应该要求用户输入任何数字以再次运行程序或-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循环,它是出口控制的,不像while循环是入口控制的
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;
do {
System.out.println("Enter a number"); //prompting the user to enter information
numb = input.nextDouble();
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);
}
只需在while循环的末尾添加一条消息,说明您必须向用户请求另一个输入,并将该输入再次读入num
,如下所示。
System.out.println("Enter a number");
numb = input.nextDouble();
“做-而
”循环是你要找的。它将是这样的:
do {
// whatever
} while(numb != 1);
< code>do-while循环确保循环至少运行一次,然后根据您的< code>while语句,它们要么继续运行,要么退出。因此,您可以在< code>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
时运行。
本文向大家介绍简单掌握C++编程中的while与do-while循环语句使用,包括了简单掌握C++编程中的while与do-while循环语句使用的使用技巧和注意事项,需要的朋友参考一下 While 语句 重复执行语句,直到表达式计算为零。 语法 备注 expression 的测试在每次执行循环前发生;因此 while 循环执行零次或更多次。 表达式必须是整型、指针类型或包含明确的整型或指针类型转
我已经尝试了一些while循环的方法,但似乎无法让它工作。我想一直请求用户输入,直到用户输入数字0为止,以下是我到目前为止的代码:
问题内容: 我很难弄清楚为什么while循环实际上不会循环。它运行一次并停止。 我正在尝试使其循环,以便用户能够多次转换单位。任何帮助都欢迎! 问题答案: 问题在于,当您呼叫时,它会占用该号码,但不会占用该号码之后的换行符。要解决此问题,只需在调用后放一行代码。 示例和完整说明: 假设您输入“ km”,按回车,“ 123”,按回车。从程序的角度来看,输入流为。 该代码获取值,并且使输入超出第一个。
所以我有一个简单的问题,我不是那么确定该怎么做,即使在尝试了相当长的一段时间。 我的问题是,我不太确定要键入什么,这样我的输入用户必须键入是或否,而不是键入其他东西。此外,当我尝试运行程序时,当我键入yes/no时,它直接跳转到else语句,而不是if语句。请帮忙:((我只是一个noob程序员)
我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!
我必须写一个使用循环的程序,计算a和b之间所有奇数的和(包括),其中a和b是输入。 我做了这个(如下),它工作得很好,但我注意到它有一个问题:当我输入一个较大的数字,然后输入一个较小的数字时,它返回0,但当我首先输入一个较小的数字时,它工作得很好。有什么快速的解决办法吗?:)