首页 > 解决方案 > 数组的方法和命令

问题描述

我试图获取 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;
    }  
}

标签: javaarraysfor-loopmethods

解决方案


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

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

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

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


推荐阅读