public class ArrayProject
{
private int[] myArray;
public static void main(String[] args)
{
int myArray[] = {2, 45, 12, 15, 16};
System.out.println("Minimium Value:" + findMin(myArray));
System.out.println("Maximium Value:" + findMax(myArray));
}
public ArrayProject(int[] x)
{
myArray=x;
}
public static int findMin(int[] myArray){
int minValue = myArray[0];
for(int i=1;i<myArray.length;i++){
if(myArray[i] < minValue){
minValue = myArray[i];
}
}
return minValue;
}
public static int findMax(int[] myArray){
int maxValue = myArray[0];
for(int i=1;i<myArray.length;i++){
if(myArray[i] > maxValue){
maxValue = myArray[i];
}
}
return maxValue;
}
public void swap (int minIndex, int maxIndex)
{
int temp;
temp = myArray[minIndex];
myArray[minIndex] = myArray[maxIndex];
myArray[maxIndex] = temp;
}
public int findValue(int value)
{
for(int i=1;i<myArray.length; i++){
System.out.println(myArray[i]);
return myArray[i];
}
}
}
我在编译findValue方法时遇到问题。最后一种方法。任何人都可以帮我解决? ........................ 我对你如何返回值感到困惑。
该类基本上找到min max和数组值。
答案 0 :(得分:2)
如果找不到任何值,该怎么办?没有返回任何内容,但该方法需要int。您需要为findValue()中的所有可能方案返回一个int值。
您可以添加一个任意不可能的数字(根据您的期望),如-1:
return -1;
后
for (int i = 1; i < myArray.length; i++) {
System.out.println(myArray[i]);
return myArray[i];
}
如果没有找到值,因为您正在使用基元。如果您的返回类型是Integer,则可以返回null,这更有意义。否则,该方法仅适用于非负数。
答案 1 :(得分:1)
您永远不会创建ArrayProject
的实例,因此您的构造函数永远不会被调用,myArray
成员永远不会被设置。
答案 2 :(得分:1)
你在for循环中返回int。 尝试声明int变量赋值给它并返回该int变量。 或者返回整个数组
答案 3 :(得分:1)
并非findValue()
函数中的每个代码路径都返回一个值。您需要在return
循环之外添加for
语句。这是必要的,因为for
循环可能会也可能不会始终执行,具体取决于myArray
的长度。如果for
循环没有执行,那么你声明要返回的函数和int
将不会执行任何return语句,编译器不允许这样做。
答案 4 :(得分:1)
你可以用它。
int[] nums={2, 45, 12, 15, 16};
Arrays.sort(nums);
System.out.println("Minimum = " + nums[0]);
System.out.println("Maximum = " + nums[nums.length-1]);
答案 5 :(得分:1)
您的问题的基本修复,因为您的return语句位于for循环中,并且可能并不总是运行。
public int findValue(int value)
{
int returnValue = -1;
for(int i=1;i<myArray.length; i++){
System.out.println(myArray[i]);
returnValue = myArray[i];
}
return returnValue;
}
不是一个好的修复,但它编译。</ p>
此外,如果函数需要查找值,则需要添加if语句以检查搜索的值是否与数组位置中的数字匹配
public int findValue(int value)
{
int returnValue = -1;
for(int i=1;i<myArray.length; i++){
System.out.println(myArray[i]);
if(value == myArray[i]){
returnValue = myArray[i];
}
}
return returnValue;
}
-1表示是否找不到该元素。