Java while 循环 - 从许多输入的变量中选择一个特定的变量值

标签 java

我的 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/

相关文章:

Java 日期时间格式化程序 : DateTimeParseException with GMT-date

java - Joda 日期时间问题与年份

java - 在 Android < 2.0 上更新联系信息

Java:如何使用循环创建字符串而不打印?

java - 我需要如何使用 MouseListener 启动后台线程?

maven-2 - 指定 JDK 供 Maven 使用

java - RoboFragment 不适用于 FragmentTransaction.add(int,Fragment) 方法

java.io.IOException : Permission denied with Xuggle

java - -Djava.library.path 是否适用于 UNIX JVM?

客户端的 java 客户端-服务器问题(无 System.out)