如何不使用return语句实现奇数长度有序数组中间元素输出?
解决不使用return语句的实现方案
要去掉原代码里的return语句,核心是用一个状态变量标记是否触发了"输入过多"的情况,避免后续执行中间元素的输出逻辑。修改后的完整代码如下:
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; boolean isTooMany = false; // 新增状态变量标记是否输入过多 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"); isTooMany = true; // 标记状态,替代return break; // 退出循环 } } // 只有未触发输入过多的情况,才执行中间元素输出 if (!isTooMany) { middleInteger = (arrayLength - 1) / 2; System.out.println("Middle item: " + userValues[middleInteger]); } } }
关键改动说明
- 新增
isTooMany布尔变量,用来记录是否出现输入超过9个有效元素的情况 - 原代码中
return语句替换为设置isTooMany = true并break循环,既终止了输入流程,又保留了后续判断逻辑 - 循环结束后增加条件判断,只有当
isTooMany为false时,才执行中间元素的计算和输出,避免错误执行后续代码
内容的提问来源于stack exchange,提问作者baw678
相关产品推荐
相关产品推荐

