Java 如何在不使用数组的情况下从用户输入的一系列整数中返回最大数?

Java 如何在不使用数组的情况下从用户输入的一系列整数中返回最大数?,java,methods,do-while,Java,Methods,Do While,今天早些时候,我学习了如何创建自己的方法,我们的讲师让我创建一个Java程序,该程序将提示用户输入他想要输入的数字数量(计数器,如果您愿意的话),以及数字本身(受设置的所述计数器的限制)。然后,控制台将显示输入的所有数字中的最大数字。我想知道在不使用数组的情况下是否可以实现这一点(当然,不考虑难度;我只想通过先学习这一点来更好地欣赏数组) 这是我到目前为止提出的代码,但它不会运行,因此我非常确定它是错误的,而且与正确答案相差甚远: import java.util.Scanner; public

今天早些时候,我学习了如何创建自己的方法,我们的讲师让我创建一个Java程序,该程序将提示用户输入他想要输入的数字数量(计数器,如果您愿意的话),以及数字本身(受设置的所述计数器的限制)。然后,控制台将显示输入的所有数字中的最大数字。我想知道在不使用数组的情况下是否可以实现这一点(当然,不考虑难度;我只想通过先学习这一点来更好地欣赏数组)

这是我到目前为止提出的代码,但它不会运行,因此我非常确定它是错误的,而且与正确答案相差甚远:

import java.util.Scanner;
public class Largest {

public static void main(String[] args) {
Scanner input=new Scanner (System.in);

    int ctr=0;
    int list=0;
    double nums=0;


    System.out.println("How many numbers would you like to enter?");
    ctr=input.nextInt();

    System.out.println("Enter the " + ctr + " numbers to determine which is the largest: ");

    do
    {
      nums=input.nextDouble();
      list++;
    } while (list!=ctr);

    System.out.println("The largest among the " + ctr + " numbers is " + largest(nums));
    }

    public static double largest (double nums) 

    {
        double maxValue = Double.MIN_VALUE;

            if (nums > maxValue){
                maxValue = nums;
                }
        return maxValue;
    }
}
目前,我的想法已经没有了。请理解,我对Java非常陌生,我所知道的只是我在网上读到的东西。我在网上找不到太多关于这个特定项目的信息,所以任何形式的帮助都将不胜感激

基本上,这就是我希望控制台在输出时的样子:

How many numbers would you like to enter?
5
Enter the 5 numbers to determine which one is the largest: 
4
8
2
10
5
The largest among the 5 numbers is 10.
提前谢谢

编辑: 我已经更新了上面的代码,除了显示的数字总是最后输入的数字,而不一定是序列中的最大数字之外,其他一切都很正常。在任何人询问之前,我想尝试调用我在这个程序中创建的一个方法,因此,如果这个代码可以在不必去掉公共静态双最大值(double nums)的情况下修复,那就太棒了。

试试这个:

double largest = Double.MIN_VALUE;
do
{
  nums=input.nextDouble();
  if (nums > largest)
    largest = nums;
  list++;
} while (list!=ctr);

如果您要一个接一个地获取数字,您只需要存储到目前为止的最大数字。不需要阵列

不要将数字添加到do循环中的列表中,只需将新数字与maxValue进行比较即可

  • 将maxValue初始化为输入的第一个数字

  • 在do循环中,将所有后续数字与maxValue进行比较,如果新数字较大,则替换maxValue


  • 如果不想使用数组,请执行以下操作:

  • 最大的
    =-∞
  • 读取输入
    x
  • 如果
    x>最大
    设置
    max=x
  • 去2号

  • 把这个翻译成Java,你就完成了。

    你确定
    list=list+nums
    是您要键入的内容吗?如果您想获得发布的确切输出,您需要将数字存储在某个位置,以便稍后打印。因此,您需要一个数组。还有很多
    {
    }
    在错误的位置。@Danny啊,是的,这可能就是它没有运行的原因。谢谢你指出这一点!如何才能做到这一点?