我的 JAVA 类(class)作业有点困难。你能帮我吗?
假设您要编写一个程序,重复询问人员的姓名及其年龄,并在输入字符串 FINISH 时停止,然后打印出所有输入人员中最年轻的人员的姓名和年龄。如果两个或两个以上的人年龄相同,只需写下最后一个输入的该年龄的人的名字。如何让JAVA选择那个人,而不使用数组,而只使用while循环、if语句和for循环。
这是示例,从方法开始。
String name = "";
int age = 0;
while (!name.equals ("finish))
{
name = JOptionPane.showInputDialog ("Give name: ");
String ageText = JOptionPane.showInputDialog ("Give age: ");
int age = Integer.parseInt (ageText);
}
JOptionPane.showMessageDialog ("the yougest person is " + age + ". It's " + name + ".");
程序运行示例:
姓名:露西 年龄:52
姓名:保罗 年龄:29
姓名:约翰 年龄:28
姓名:玛丽 年龄:31
给出名称:完成
最小的人是 28 岁。是约翰。
请注意字符串“finish”在最后没有打印出来。
我已经思考了 8 个小时,试图找到一种方法来做到这一点。我恳求你帮忙。
亲切的问候,
最佳答案
您需要添加更多变量来跟踪当前已知的最小年龄以及与之相关的人:
String name="", youngName;
int age=Integer.MAX_VALUE, youngAge;
while (!name.equals("FINISH")) {
name = JOptionPane.showInputDialog("Enter a name: ");
age = Integer.parseInt(JOptionPane.showInputDialog("Enter " + name + "'s age: "));
if(age <= youngAge && !name.equals("FINISH")) {
youngAge = age;
youngName = name;
}
}
JOptionPane.showMessageDialog("The youngest age is: " + youngAge + ". It's " + youngName + ".");
请注意,如果您在年龄字段中输入的不是数字,并且没有考虑到可能有两个或两个以上年龄最小的人这一事实,程序将会中断。
关于Java while 循环 - 从许多输入的变量中选择一个特定的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8024734/