Java中的最小值始终显示为0

时间:2016-10-07 19:26:54

标签: java arrays

import java.util.Scanner;
import java.util.List;
import java.util.Arrays;
import java.util.*;



public class Exercise16 {
    public static void main(String[] args) {
        System.out.println("Please enter a sequence of positive integers");
        Scanner user_input = new Scanner(System.in);
        String user_string = user_input.nextLine();
        boolean hasNegativeOne = user_string.contains("-1");

        if (hasNegativeOne){
            String[] sequence = user_string.split(" ");

            int[] numbers = new int[sequence.length];

            for (int i = 0; i < sequence.length;i++) {
                numbers[i] = Integer.parseInt(sequence[i]);
            }


        // Method for getting the maximum value
            int max_value = 0;
            for(int i=0; i<numbers.length; i++){
                if (numbers[i] > max_value){
                    max_value = numbers[i];
                }
            }

        // Method for getting the minimum value
            int min_value = 0;
            for(int i=0; i<numbers.length; i++){
                if (numbers[i] < min_value){
                    min_value = numbers[i];
                }
            }


            System.out.println("The maximum value is: " +max_value);
            System.out.println("The minimum value is: " +min_value);


        }

    }
}

大家好,我正在开发一个程序,用户输入一系列正整数。我的程序应该显示最大值和最小值。但是,每当我运行程序时,即使输入的序列不包含0,最小值也始终设置为0.如何更改此值?另外,我包括了&#34; if(numbers [i]&gt; -1){&#34;因为我的程序不允许接受负数。提前谢谢。

3 个答案:

答案 0 :(得分:2)

min_value从0开始。您不能接受负数。然后你试着说:

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<html>
  <body>
    <p>foo</p>
    <p>bar</p>
  </body>
</html>
EOT

doc.search('p').class # => Nokogiri::XML::NodeSet
doc.search('p').text # => "foobar"

doc.at('p').class # => Nokogiri::XML::Element
doc.at('p').text # => "foo"

doc.search('p').map(&:text) # => ["foo", "bar"]

如果您不接受负数,则任何数字都不会小于0.

答案 1 :(得分:2)

尝试将您的最小值初始化为 public class Test{ static String symbol; public static void main (String[] args){ String symbol = args[0]; letter(); } static void letter(){ System.out.println(symbol); } }

答案 2 :(得分:1)

最初将max_valuemin_value设置为numbers[0]会更好。在这种情况下,您将正确处理这两种情况,因为它是用户输入的一部分,因此您的默认值也是有效的。如果元素大于(或小于)第一个元素,则重新分配它

if (numbers.length != 0) {
    int max_value = numbers[0];
    int min_value = numbers[0];
    for (int i = 1; i < numbers.length; i++) {
        int num = numbers[i];
        if (num > max_value) {
            max_value = num;
        }
        if (num < min_value) {
            min_value = num;
        }
    }
    System.out.println("The maximum value is: " + max_value);
    System.out.println("The minimum value is: " + min_value);
} else {
    // process empty user input
}