温馨提示:本文翻译自stackoverflow.com,查看原文请点击:java - Array's methods and comands
arrays for-loop java methods

java - 数组的方法和命令

发布于 2020-03-27 16:16:21

我正在尝试获取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;
    }  
}

查看更多

查看更多

提问者
Vitangelo Moscarda
被浏览
154
maio290 2020-01-31 17:20

编辑:刚刚看到也a被注释掉了,我的错误。但是,此处Nicktar的答案适用于您将a设置为数组的第一个元素(其编号尚未设置)的原因。解决方案保持不变。

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

您在方法中的for循环中所犯的错误是甚至没有在其中定义,因此整个循环甚至都不应编译。maina

只需var a = Arr[0];在循环之前添加,然后从索引1开始循环。