我正在研究循环,我在这里尝试一个示例问题,只使用一个循环来要求用户输入人名,高度先以英尺为单位,然后是英寸然后找到最高的。我理解如何做大部分工作。
有人能指出我哪里错了吗?我开始编写代码并意识到我不能在不知道用户将输入多少人的情况下声明人名。我无法理解它。
我想提示用户提问,但也要将其更新为人[2],人[3],人[4]等,具体取决于他们最初输入的人数。
抱歉没有正确写字。任何帮助表示赞赏。我理解第10,11和12行可能是错误的。
class HeightTest
{
public static void main(String[] args)
{
int noOfPeople;
int index;
int feet;
int inches;
String personOne;
String personTwo;
String personThree;
System.out.print("Enter a number of people ");
noOfPeople = EasyIn.getInt();
for (index = 1; index <=noOfPeople; index++)
{
System.out.println("Enter the name of person " + index);
personOne = EasyIn.getString();
System.out.println("Enter feet portion for " + personOne);
feet = EasyIn.getInt();
System.out.println("Enter inches portion for " + personOne);
inches = EasyIn.getInt();
}
}
}
答案 0 :(得分:2)
你有一个很好的开始。您现在需要做的就是跟踪输入的高度,并将它们与目前为止最大的输入进行比较。如果当前循环迭代的高度大于当前循环的高度,则将其存储为最大值。
在伪代码中:
int largestHeightInches = 0;
for( i = 1; i <= noOfPeople; index++ ) {
currentHeightFeet = GetInt();
currentHeightInches = GetInt();
currentHeight = currentHeightInches + currrentHeightFeet * 12;
if( largestHeightInches < currentHeight ) {
largestHeightInches = currentHeight;
}
}
答案 1 :(得分:1)
你必须创建一个人的数组来实现你想要的东西。
这是一个片段。 创建一个名为Person
的类public class Person
{
int index;
int feet;
int inches;
String name;
}
创建一个主要的Test类来包含你的main方法,并做这样的事情
public class Main{
public static void main (String[] args)
{
// get the number of people in noOfPeople as you do now.
Person[] pArray= new Person[nOfPeople]
for(Person p: pArray)
{
System.out.println("Enter the name of person " + index);
p.name = EasyIn.getString();
// ...etc
}
}
}