java 奇数数组列表中的中间项

d7v8vwbk  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(91)

有人能解释一下如何在不使用return语句的情况下解决这个问题吗?
给定一个有序的整数列表,输出中间的整数。负数表示输入的结束(负数不是有序列表的一部分)。假设整数的数量总是奇数。
例如:如果输入为:2 3 4 8 11输出为:中间项:4
任何测试用例的列表值的最大数量不应超过9。如果超过,则输出“Too many numbers”。
提示:首先将数据读入数组,然后根据数组的大小找到中间的项。

import java.util.Scanner; 

    public class LabProgram {
    public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      int[] userValues = new int[10];     
      int arrayLength = 0;
      int i;
      int middleInteger;
      
      for (i = 0; i < 10; ++i) {
          userValues[i] = scnr.nextInt();
      
         if (userValues[i] == -1) {
            arrayLength = i + 1;
            break;
         }
         
         if ((i == 9) && (userValues[i] != -1)) {
            System.out.println("Too many numbers");
            return;
         }
      }
      middleInteger = (arrayLength - 1) / 2;
      
      System.out.println("Middle item: " + userValues[middleInteger]);
    }
    }
m2xkgtsf

m2xkgtsf1#

***在退出for循环后,可以使用条件检查来确定是数字太多还是中间数字有效。***在这种情况下,可以避免显式使用return语句,让方法在执行完完整代码后退出。例如,可以考虑执行以下操作:

public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      int[] userValues = new int[10];     
      int arrayLength = 0;
      int middleInteger;
      
      for (int i = 0; i < 10; ++i) {
          userValues[i] = scnr.nextInt();
         if (userValues[i] < 0 || i == 9) {
            arrayLength = i + 1;
            break;
         }
      }
      if(arrayLength==10 && userValues[arrayLength-1]>0)
        System.out.println("Too many numbers");
      else {
        middleInteger = (arrayLength) / 2 - 1;
        System.out.println("Middle item: " + userValues[middleInteger]);
      }
    }

相关问题