私が書いているプログラムは、家計 mpg に関する調査 (3 ~ 6) に適した人数のメンバーが家族にいるかどうかを確認するための検証ループを備えたプログラムです。そうでない場合は、要件を満たしていないことを知らせるプログラムを設定しており、続行する場合は別の番号を入力する必要があります。検証ループは理解できたと思いますが、for
ループの次の部分はそれほど簡単ではありません。
ユーザーが家族の車ごとに異なるmpgsを何回入力する必要があるかをプログラムがどのように知るかはわかりません。たとえば、1 つの家族に 3 人のメンバーがいて、もう 1 つの家族に 5 人のメンバーがいるとします。別の入力ボックスが必要です。for 引数に何を入れるかについて、私はほとんど混乱しています。これが私のこれまでのコードです。
編集: 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 + ".");
}
}