[英]Why can't I access my int array values that I made in my main method from another method? (beginner Java coder)
I am making a program that is simple for my school project, I am asking for a list then return either a max, min, or average.我正在为我的学校项目制作一个简单的程序,我要求一个列表,然后返回最大值、最小值或平均值。 I make an array in the class then edit the values in my main method, I am trying to access the new values from my other methods but cant, IDK why.
我在 class 中创建了一个数组,然后在我的主要方法中编辑值,我试图从我的其他方法中访问新值,但不能,IDK 为什么。
import java.util.Scanner;导入 java.util.Scanner; import java.util.Arrays;
导入 java.util.Arrays;
public class numbersAreWeird {公共 class numbersAreWeird {
private static double[] thing;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
print("Hello");
print("What is the length of your set of numbers?");
int whyEven = in.nextInt();
thing = new double[whyEven];
for(int i = 0; i < thing.length; i++)
{
System.out.println("What do you want to place for " + i + " ?");
whyEven = in.nextInt();
thing [i] = whyEven;
}
print("This is your arrray " + Arrays.toString(thing));
print("Do you want to [1] Find the max [2] the min");
print(" [3] find the average");
int tree = in.nextInt();
if(tree == 1)
{
getMax();
}
if(tree == 2)
{
getMin();
}
if(tree == 3)
{
getAve();
}
}
public static String getMax() {公共 static 字符串 getMax() {
Double max = Double.MIN_VALUE;
for(int i = 0; i < thing.length; i++)
{
if(max<thing[i])
max = thing[i];
}
return ("The Max value of the list is ")+ max;
}
public static String getMin()
{
Double min = Double.MAX_VALUE;
for(int i = 0; i < thing.length; i++)
{
if(min>thing[i])
min = thing[i];
}
return ("The Min value of the list is ") + min;
}
public static String getAve()
{
int total = 0;
int count = 0;
for (int i = 0; i < thing.length; i++)
{
total += thing[i];
count++;
}
return ("The average of the list is ") + total/count;
}
public static void print(String str)
{
System.out.println(str);
}
}// end of class }// class 结束
I think you intended to print rather than return, or rather, forgot to print the returned value.我认为您打算打印而不是返回,或者更确切地说,忘记打印返回的值。
You should be printing the returned value (which involves less of a fix up with your code) like so:您应该像这样打印返回的值(这涉及较少的代码修复):
if (tree == 1) {
print(getMax());
}else if (tree == 2) {
print(getMin());
}else if (tree == 3) {
print(getAve());
}
Also, I replaced the 3 if
statements with 1 if
and 2 else if
statements.另外,我用 1 个
if
和 2 个else if
语句替换了 3 个if
语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.