【问题标题】:Finding the minimum of scanner input in a method在方法中查找扫描仪输入的最小值
【发布时间】:2022-11-14 03:03:52
【问题描述】:

我试图找到扫描仪类的变量输入的最小值。我有尽可能多的用户想要的输入,但我似乎无法找到如何找到多个输入的最小值。任何帮助,将不胜感激。

public static void minimum(int count)
    {
        double input;
        boolean lessThan;
        double lesser = 0;
        for(count = count; count > 0; count--)
        {
            System.out.print("Enter a double: ");
            input = console.nextDouble();
            lessThan = input < input;
            if(lessThan = true)
            {
                lesser = input;
            }
            else
            {
                lesser = input;
            }

        }
        System.out.println("The minimum is " + lesser);


    }

【问题讨论】:

  • if(lessThan = true) x=y任务运营商也返回赋值。所以lessThan = true分配lessThan 变量为true,并且还返回true。所以if(lessThan = true){..} 本质上与lessThan = true; if (true){...} 相同。至相比值使用== 运算符,或者为避免此类错误跳过== true 并直接写if (lessThan) {...}。或者直接在if 条件下使用if (input &lt; input){...}(顺便说一句,你看到input &lt; input 的问题了吗?这可能是真的吗?)
  • 无论如何,您的代码中有很多小问题。比如for(count = count; count &gt; 0; count--)count = count的目的是什么?为什么在else 中,您正在做与条件为真的情况相同的事情?
  • count = count 的目的是将 count 设置为等于自身,以便我获得正确的 int 用户需要程序处理多少双打。我无法弄清楚如何将输入与后来的输入值进行比较并将其存储在变量中。
  • “将计数设置为等于自身”让我们说count 拥有一些像 4 这样的值。我们执行count = count 会发生什么变化吗?不,它仍然会保留4。编码是关于应用一些变化,如果没有任何反应,则不需要此类代码。您可以跳过count = count 并写for ( ; count&gt;0; count--){ .. } 或使用旧的while (count &gt; 0) { .. ; count--}
  • 好的,我会解决这个问题,考虑到 input = console.nextDouble(); 你对比较输入和自身有什么建议吗?有多个值?

标签: java methods minimum


【解决方案1】:

这是答案,但我的答案有点不同。首先我创建了一个 初始化数组,因为我们需要多次执行代码,然后我将用户输入存储到数组中,然后使用数组索引找到最小值。

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double arr[] = new double[5];

        for (int i = 0; i < arr.length; i++) {
            System.out.println("Enter the double");
            arr[i] = scanner.nextDouble();
        }
        double min = arr[0];
        for (int j=0;j<arr.length;j++){
            if(arr[j]<min)
                min=arr[j];
        }
        System.out.println("min value is"+" "+min);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-19
    • 2023-03-17
    • 2017-09-04
    • 1970-01-01
    • 2016-06-20
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多