java - 数组的方法和命令
问题描述
我试图获取 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;
}
}
解决方案
编辑:刚刚看到也a
被注释掉了,我的错误。但是,这里 Nicktar 的答案适用于您将 a 设置为数组的第一个元素的原因,该元素的数字甚至还没有设置。解决方案保持不变。
首先,坚持Java的命名约定。类以大写字母开头,变量以小写字母开头。
您在方法中的for
循环中的错误是甚至没有在那里定义,因此整个循环甚至不应该编译。main
a
只需var a = Arr[0];
在循环之前添加循环并在索引 1 处开始循环。
推荐阅读
- java - 我不断得到什么 ClassCastExpection
- python - keras:样本权重多重不平衡输出
- scheme - Racket 中的 SICP Ch5 eceval 编译器:set-cdr!进入引用列表(不是重复)
- python - Python Pygame - 如何为我的游戏添加计时器?
- javascript - 如何将服务器的当前时间戳自动放入 PHP 的 strtotime() 函数中?
- pandas - 如何对多列使用交叉表?
- c# - Telerik radgridview CellFormatting 不稳定
- mysql - 如何使用一列的值来检查另一行的值?
- php - 手动输入地址时保护laravel中的路由
- javascript - 用 Jest 部分模拟 React 模块