【问题标题】:Multiple return in methods??/ [duplicate]方法中的多个返回??/ [重复]
【发布时间】:2017-05-09 14:12:51
【问题描述】:

只使用三个方法(包括 main)和一个 10 个整数的数组,我需要创建一个程序来做这些事情:

  1. 计算通过考试的人数。
  2. 打印统计信息。 (例如,A、B、C、D、E 级...)
  3. 有多少人通过或未通过考试。

这就是我现在所拥有的。我唯一的问题是我不知道如何返回多个值。

public class Array10PassFail

public static int countPass (int [] num)
{
    int count = 0;
    int counter = 0;
for (int i = 0; i < num.length; i++)
    {
        if (num [i] >= 50)
        {
            count++;
        }
        else if (num [i] < 50)
        {
            counter++;
        }
    }
 return count;
}



public static int printStats (int [] num)
{
    int aTotal = 0, bTotal = 0,cTotal = 0, dTotal = 0, eTotal = 0;
    for (int i = 0; i < num.length; i++)
    {
        if (num[i] >= 80)
        {
            aTotal++;
        }
        else if (num[i] >= 70)
        {
            bTotal++;
        }
        else if (num[i] >= 60)
        {
            cTotal++;
        }
        else if (num[i] >= 50)
        {
            dTotal++; 
        }
        else if (num[i] < 50)
        {
            eTotal++; 
        }
    }
    return aTotal;
}

public static void main (String [] args)

{
    Scanner sc = new Scanner(System.in); 

    int [] num = new int [10];

    for (int i = 0; i < num.length; i++)
    {
        System.out.print("Enter score: "); 
        num[i] = sc.nextInt(); 
    }

    int passf = countPass(num);

    System.out.println("There are " + passf + " people who passed and " + ??? + " who failed. "); 
}

【问题讨论】:

  • 仅供参考java!=javascript
  • 将值存储在Array 中,并将两种方法的返回类型更改为Array
  • 你可以创建一个类,比如Result,它的成员代表你希望从你的方法返回的多个计算值。然后,在您的方法中,实例化 Result,填充其中的计数,然后从您的方法中返回它
  • #1 和#3 可以通过添加额外参数以相同的方法处理。

标签: java arrays for-loop while-loop


【解决方案1】:

创建一个数组。例如,

public static int[] countPass(int[] num){
    int count = 0, counter=0;
    for (int i = 0; i < num.length; i++){
        if (num [i] >= 50) count++;
        else counter++;
    }
    return new int[]{count,counter};
}

和做类似的事情

int array[] = countPass(num);
System.out.println("Failed -> " + array[1] + "Passed->" + array[0]);

同样,为了成绩。

【讨论】:

    【解决方案2】:

    如果要返回多个值,通常希望返回封装值的单个对象。 使用 List> 或 ArrayList,将您的值添加到 List 中并返回它。在调用函数中,获取 List 中的返回值并提取您认为合适的信息

    【讨论】:

      猜你喜欢
      • 2014-04-04
      • 2012-09-20
      • 2012-02-14
      • 1970-01-01
      • 2011-07-30
      • 2018-07-02
      • 2018-03-19
      • 2018-08-27
      • 1970-01-01
      相关资源
      最近更新 更多