我正在编写的程序是一个有一个验证循环的程序,以查看一个家庭是否有适当数量的成员进行调查(3-6)关于他们的房子应该mpg。如果他们没有我的程序设置,告诉他们不符合要求,如果他们想继续,必须输入一个不同的号码。我认为我认为验证循环,但for
循环的下一部分并不那么容易。
我不确定程序将如何知道用户应该为家庭中的每辆车输入不同的mpgs多少次。例如,如果一个家庭有3个成员而另一个家庭有5个成员。我需要一个单独的输入框。我大部分时间都会对参与争论的内容感到困惑。这是我到目前为止的代码。
编辑:我认为格式化for循环的方法是正确的。现在我必须弄清楚如何让用户将数据输入到for循环的主体中。因此,如果他们有3辆车,我需要让他们输入每辆车的mpg,然后计算平均值。我坚持如何分别存储每辆汽车mpgs。import javax.swing.JOptionPane;
public class MpgRetry
{
public static void main(String[] args)
{
String familyMembersStr, mpgStr;
int familyMembers;
int mpgAverage;
familyMembersStr = JOptionPane.showInputDialog("Please enter number of family members: ");
familyMembers=Integer.parseInt(familyMembersStr);
while(familyMembers <3 || familyMembers >6)
{
JOptionPane.showMessageDialog(null, "Sorry, this survey can only use data from families with 3-6 members.");
familyMembersStr = JOptionPane.showInputDialog("Please enter the number of family members (3-6): ");
familyMembers = Integer.parseInt(familyMembersStr);
}
double[] mpg = new double[familyMembers]; // creat array to hold values
for (int i = 0; i < familyMembers; i++)
{ // assuming each member has one car
mpgStr = JOptionPane.showInputDialog("Please enter MPG each car (separately): ");
mpg[i] = Integer.parseInt(mpgStr);
}
mpgAverage = (mpg / familyMembers);
JOptionPane.showMessageDialog(null,"The average mpg of this family is " + mpgAverage + ".");
}
}
答案 0 :(得分:0)
我想你想要这样的东西:
double[] mpg = new double[familyMembers]; // creat array to hold values
for (int i = 0; i < familyMembers; i++){ // assuming each member has one car
mpg[i] = // get mpg Input
}
如果你想做一些像平均值那样的事情,你可以这样做
double total = 0;
for (int i = 0; i < mpg.length; i++) {
total += mpg[i];
}
double average = total / mpg.length
System.out.println("Average mpg for each member is " + average);
编辑:如果有人有多辆车
// You need an ArrayList to dynamically change the size of the array
// because you don't know exactly how many cars there will be total
ArrayList<Double> mpgList = new ArrayList<Double>();
for (int i = 0; i < familyMembers; i++){
int cars = // ...input dialog to ask how many cars each person has goes here
for (int j = 0; j < cars; j++) {
mpg = // user input
mpgList.add(mpg)
}
}
// to get total
int total = 0;
for (int i = 0; i < mpg.size();i++){
total += mpgList.get(i);
}
// find average here
编辑:不使用数组
double total = 0;
for (int i = 0; i < familyMembers; i++){ // assuming each member has one car
double mpg = // parsed user input
total += mpg;
}
// get average here
答案 1 :(得分:0)
所以我认为你的第二个循环应该是一个if语句 所以你的第二个陈述看起来像是
if(familyMembers >= 3 && familyMembers <= 6)
{
}
至于你在该陈述中应该做些什么 我会在你的程序顶部创建一个计数器,
int currentCar = 1;
然后在if语句中你可以有一个像
这样的while循环while(currentCar !> familyMembers)
{
}
并且基本上在那个while循环中你会要求他们输入mpg作为“当前汽车”,然后存储然后增加currentCar。
答案 2 :(得分:0)
说是否有4个家庭成员......
您想对这些家庭成员做些什么?如果你想循环尽可能多的家庭成员,你可以简单地使用这种for循环:
for(int i=0; i<familyMembers; i++){
//some code
}