【问题标题】:Array's methods and comands [closed]数组方法和命令 [关闭]
【发布时间】:2020-05-16 22:34:53
【问题描述】:

我试图获取 int 数组之间的最小值及其索引。

我不明白为什么如果我在 main 方法中使用 for 循环它不起作用,但如果我在 aux 方法中使用相同的代码它会起作用。代码应该是对的。

被注释的部分代码是for循环不起作用。

package minimoArray;
import java.util.Scanner;

public class minimoArray {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Inserisci 10 numeri interi: "); 
        int [] Arr = new int [10];
        //int a = Arr[0];
        int b = 0;

        for (int i = 0; i < Arr.length; i++) {    //NON si può riempire l'array con for-each
            Arr[i] = scanner.nextInt();         
        }

        /*
        for (int i = 0; i < Arr.length; i++) {      
            if (Arr[i] < a) {
                a = Arr[i];
                b = i;
            }
        }*/

        int minimo = minimo(Arr);

        for (int i = 0; i < Arr.length; i++) {  
            if (Arr[i] == minimo) {
                b = i;
            }
        }

        System.out.println(" il minimo è: " + minimo); 
        System.out.println(" l'indice del minimo è: " + b); 
    }

    private static int minimo (int [] a) {
        var min = a[0];
        for (int i = 1; i < a.length; i++) {
            if (a[i] < min ) {
                min = a[i];
            }
        }
        return min;
    }  
}

【问题讨论】:

    标签: java arrays for-loop methods


    【解决方案1】:

    编辑:刚刚看到a 也被注释掉了,我的错。但是,这里 Nicktar 的答案适用于您将 a 设置为数组的第一个元素的原因,该元素的数字甚至还没有设置。解决方案保持不变。

    首先,坚持 Java 的命名约定。类以大写字母开头,变量以小写字母开头。

    您在main 方法中的for 循环中的错误是a 甚至没有在那里定义,因此整个循环甚至不应该编译。

    只需在循环前添加var a = Arr[0]; 并在索引 1 处开始循环。

    【讨论】:

      【解决方案2】:

      在你的 main 方法中初始化 a 太早了。您在写入数组之前将 a 设置为 Arr[0] ,这会将其设置为 0,因为原始 int 已初始化为 0。因此您在主要方法中的代码会将您的所有数组与 0 进行比较...。这将找到一个最小值仅限负数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-16
        • 1970-01-01
        • 2014-06-07
        • 1970-01-01
        相关资源
        最近更新 更多